/// <inheritdoc /> public void DeleteConfigEntry(String entryName, String node = null) { ICertAdmin2 certAdmin = new CCertAdminClass(); try { if (useActive) { certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, null); } else { certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, null); } } catch (Exception ex) { if (!(ex is FileNotFoundException)) { throw; } } finally { CryptographyUtils.ReleaseCom(certAdmin); } }
/// <inheritdoc /> public void SetConfigEntry(Object data, String entryName, String node = null) { if (data == null) { throw new ArgumentNullException(nameof(data)); } ICertAdmin2 certAdmin = new CCertAdminClass(); try { switch (data) { case String _: case Int32 _: if (useActive) { certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, data); } else { certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, data); } break; case Boolean b: if (useActive) { certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, b ? 1 : 0); } else { certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, b ? 1 : 0); } break; case IEnumerable <String> array: if (useActive) { certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, array.ToArray()); } else { certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, array.ToArray()); } break; case IEnumerable <Byte> array: if (useActive) { certAdmin.SetConfigEntry($"{ComputerName}\\{ActiveConfig}", node ?? String.Empty, entryName, array.ToArray()); } else { certAdmin.SetConfigEntry(ComputerName, String.Empty, entryName, array.ToArray()); } break; default: throw new ArgumentException(); } } finally { CryptographyUtils.ReleaseCom(certAdmin); } }