2009-03-31 8 views
4

Je souhaite pouvoir ajouter ou supprimer des stratégies de sécurité IP sur Windows Server 2003 par programmation avec C#.Quelles sont mes options pour ajouter et supprimer des stratégies IPSec sur Windows Server avec C#?

Normalement, vous manipulez ces stratégies manuellement via 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 politiques de filtrage IP à travers le code.

Des idées sur comment faire cela?

Répondre

3

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. Contre-intuitivement, cela expose réellement le contrôle LESS que l'option # 2 (ce que je fais moi-même). Tout cela est effectué via 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:

Methods of programatically altering ipsec rules with C#?

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

2) Envelopper netsh ipsec pour faire tout votre sale boulot. C'est la voie à suivre, car powershell (qui peut être invoqué via la classe PowerShell dans System.Management.Automation) manque actuellement d'une cmdlet pour effectuer les modifications IPSec.

Is there a cmdlet in PowerShell 2 to handle ipsec changes?

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

Utilisez System.Diagnostics.Process pour générer et contrôler un shell ou utilisez la classe PowerShell comme indiqué ci-dessus. L'un ou l'autre 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!

-2

Vous pouvez utiliser System.Diagnostics.Process et exécuter "cmd.exe" avec la commande ipsec comme arguments. Une autre ressource que vous pouvez essayer est Microsoft's website ou Google

+0

Je l'ai déjà googlé, et recherché StackOverflow.com, et si vous lisez la page MS vous liez, vous verriez que le IPSecpol.exe (qui semble être un candidat probable pour le bon outil) * n'est pas inclus dans Windows Server 2003 * inclus – ZeroBugBounce

Questions connexes