Quelles sont mes options pour ajouter et supprimer des stratégies IPSec sur Windows Server avec C #?

StackOverflow https://stackoverflow.com/questions/703225

  •  22-08-2019
  •  | 
  •  

Question

Je veux être en mesure d'ajouter ou de supprimer des stratégies de sécurité IP sur Windows Server 2003 avec programme C #.

Normalement, vous devriez manipuler ces politiques manaully à travers le composant logiciel enfichable gpedit.msc (sous Paramètres Windows -> Stratégies locales -> Stratégies de sécurité IP sur l'ordinateur local). Mais je dois être en mesure d'ajouter des stratégies de filtrage IP par le code.

Toutes les idées sur la façon de le faire?

Était-ce utile?

La solution

J'ai eu affaire à cette question pendant environ deux semaines, et, malheureusement, vous avez deux options, en fonction de la profondeur de contrôle dont vous avez besoin:

1) La manipulation directe avec WMI. La contre-intuitive, ce qui expose effectivement le contrôle MOINS que l'option # 2 (qui est ce que je suis moi-même en train de faire). Tout cela est fait par la classe Win32_NetworkAdapterConfiguration. Voici un lien vers la question que je posais à ce sujet, avec ma réponse à ce moment plus tard, après des recherches, il:

Méthodes de modification des règles programatically IPsec avec C #?

Cette situation expose moins de fonctionnalités, car vous ne pouvez contrôler trois choses par IPsec pour les adaptateurs: les ports TCP, UDP ports, protocoles IP. (Vous ne pouvez pas faire face à plusieurs politiques, différents masques de sous-réseau, etc.)

2) Emballage netsh ipsec à faire tout le sale boulot. Ceci est le chemin à parcourir, comme Powershell (qui peut être invoqué par la classe PowerShell System.Management.Automation) fait actuellement défaut d'une applet de commande pour faire des changements IPSec.

Y at-il une applet de commande PowerShell 2 pour gérer les changements ipsec?

Emballage netsh ipsec par un pipeline de Powershell appelé par System.Management.Automation.PowerShell est ce que je fini par faire.

Utilisez soit System.Diagnostics.Process pour engendrer et commander une coquille, ou utiliser la classe PowerShell comme mentionné ci-dessus. Ou bien devrait faire le travail.

NOTE Si vous passez à 2008 à un moment donné, notez que netsh ipsec est dépréciée, et assurez-vous d'utiliser à la place netsh advfirewall.

Bonne chance!

Autres conseils

Vous pouvez utiliser System.Diagnostics.Process et exécuter "cmd.exe" avec la commande ipsec comme les arguments.

Une autre ressource que vous pouvez essayer est site de Microsoft ou Google .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top