Gibt es ein CMDLet in PowerShell 2, um IPSec -Änderungen zu bewältigen?
-
19-09-2019 - |
Frage
Ich verwende System.Management.Automation, um ein Programm zu erstellen, das im Wesentlichen als Firewall dient, und ich habe mich gefragt, ob es in PowerShell 2 ein bestimmtes CMDLET gibt, um IPSec -Änderungen für einen Server zu verarbeiten? (dh das dupliziert die NETSH -IPSec -Funktionalität)?
Oder müsste ich einen schreiben? :P
Ich hoffe auf eine sauberere Lösung, als ein [Diagnostics.Process] innerhalb des PowerShell -Code zu rufen, um die NetSH -Abfragen zu bearbeiten, und ein CMDLet wäre besser.
Hat jemand Tipps oder Tricks? Oder sollte ich einfach anfangen, die Dokumentation "Schreiben eines Windows PowerShell Cmdlet Cmdlet" durch:
http://msdn.microsoft.com/en-us/library/dd878294%28vs.85%29.aspx
Danke für alle Ideen!
Lösung
Leider gibt es zu diesem Zeitpunkt keine nativen PowerShell -CMDlets, die Netsh ähnliche Funktionen bieten.
Davon abgesehen müssten Sie keinen neuen Prozess abbauen, um Netsh -Befehle in einer PowerShell -Funktion auszuführen. Sie können jeden EXE ausführen, den Sie normalerweise in CMD in einer PS -Funktion oder einem Skript ausführen, so wie Sie es mit einem CMDLet tun würden. Sie können die Ausgabe in einer Variablen speichern und den Text mit Select -String oder -patch -Operator verarbeiten.
Genau wie ein Beispiel
Function Get-NetShIPInterface {
netsh int ip show int
}
$interface = Get-NetshIPinterface
$interface | select-string "Local Area Connection"
Schließlich werden wir Networking -CMDlets bekommen, aber im Moment kann Netsh die Arbeit erledigen.