ما هي خياراتي لإضافة وإزالة سياسات IPSEC على Windows Server مع C#؟

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

  •  22-08-2019
  •  | 
  •  

سؤال

أريد أن أكون قادرًا على إضافة أو إزالة سياسات أمان IP على Windows Server 2003 برمجيًا مع C#.

عادةً ما تقوم بمعالجة هذه السياسات من خلال GediT.MSC Snap -in (ضمن إعدادات Windows -> سياسات محلية -> سياسات أمان IP على الكمبيوتر المحلي). لكنني بحاجة إلى أن أكون قادرًا على إضافة سياسات مرشح IP من خلال التعليمات البرمجية.

أي أفكار حول كيفية القيام بذلك؟

هل كانت مفيدة؟

المحلول

لقد كنت أتعامل مع هذه المشكلة لمدة أسبوعين تقريبًا ، وللأسف ، لديك خياران ، اعتمادًا على عمق التحكم الذي تحتاجه:

1) التلاعب المباشر مع WMI. بشكل معاكس ، هذا في الواقع يعرض تحكمًا أقل من الخيار رقم 2 (وهو ما أفعله بنفسي). يتم ذلك كله من خلال فئة Win32_NetworkAdapterConfiguration. إليك رابطًا للسؤال الذي طرحته حول هذا الأمر ، مع ردي عليه بعد لحظة بعد البحث عنه:

طرق تغيير قواعد IPSEC برمجيا مع C#؟

هذا يعرض وظائف أقل لأنه يمكنك فقط التحكم في ثلاثة أشياء من خلال IPSEC للمحولات: منافذ TCP ، منافذ UDP ، بروتوكولات IP. (لا يمكنك التعامل مع سياسات متعددة ، وأقنعة شبكة فرعية مختلفة ، وما إلى ذلك)

2) لف netsh ipsec للقيام بكل عملك القذر. هذه هي السبيل للذهاب ، لأن PowerShell (التي يمكن استدعاؤها من خلال فئة PowerShell في System.Management.Automation) تفتقر حاليًا إلى CMDLET لإجراء تغييرات IPSEC.

هل هناك cmdlet في PowerShell 2 للتعامل مع تغييرات IPSEC؟

لف netsh ipsec من خلال خط أنابيب powershell يسمى من خلال system.management.automation.powershell هو ما انتهى بي الأمر.

استخدم إما System.Diagnostics.process للتفرخ والتحكم في قذيفة ، أو استخدام فئة PowerShell كما هو مذكور أعلاه. إما يجب أن تنجز المهمة.

ملاحظةإذا قمت بالتبديل إلى عام 2008 في مرحلة ما ، لاحظ أن Netsh IPSec قد تم إهمالها ، وتأكد من استخدام Netsh AdvfireWall بدلاً من ذلك.

حظا طيبا وفقك الله!

نصائح أخرى

يمكنك استخدام System.Diagnostics.process وتشغيل "cmd.exe" مع أمر IPSEC كوسائط.

مورد آخر يمكنك تجربته هو موقع Microsoft أو جوجل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top