Ich muss einen Weg finden, das Deaktivieren bestimmter Netzwerkprotokolle bestimmter Netzwerkadapter zu automatisieren. Ich weiß, dass ich das Fenster öffnen und die verschiedenen Protokolle wie „Internet Protocol Version 6 (TCP/IPv6)“ im Eigenschaftenfenster eines bestimmten Netzwerkadapters deaktivieren kann, aber ich muss einen Weg finden, dies über die Befehlszeile oder über die Registrierung zu tun, damit ich den Vorgang automatisieren kann. Irgendwelche Ideen? – Danke!
Antwort1
Dies ist mit PowerShell ganz einfach möglich. Die folgenden Befehle funktionieren am besten mit der in Windows integrierten PowerShell, da die PowerShell Core-Editionen diese Befehle bislang nicht gut unterstützen.
VerwendenGet-NetAdapter
um die Netzwerkadapter auf Ihrem System aufzulisten.
VerwendenGet-NetAdapterBinding
-Name "MyAdapter" -AllBindings
um die Bindungen auf einem Netzwerkadapter aufzulisten.
VerwendenSet-NetAdapterBinding
-Name "MyAdapter" -ComponentID ms_tcpip -Enabled $True
um eine Bindung anhand ihres Komponentennamens zu aktivieren oder zu deaktivieren.
-?
Weitere Optionen finden Sie in der verlinkten Dokumentation oder durch Ausführen von Befehlen mit dem Flag.
Antwort2
Ich habe dies für einige der Skripte getan, die ich bei der Arbeit verwende.
Es sind immer mehrere Adapter registriert, einige führen Loopbacks aus. Das Hauptproblem besteht darin, die richtigen Adapter zu erkennen und den Rest herauszufiltern. Sie sollten sich auch darüber im Klaren sein, dass Änderungen, die vom Dienstprogramm netsh vorgenommen werden, möglicherweise erst nach einem Neustart auf die WMI-Schnittstelle übertragen werden.
Ich würde vorschlagen, einen Blick auf die WMI-Mitgliedsfunktionen von Win32_NetworkAdapterConfiguration zu werfen oder netsh zu verwenden.
Sie verweisen nicht auf ein Betriebssystem, ich nehme an, Sie meinen Windows. Ich würde Powershell vorschlagen, da es mit Windows 7 und höher gebündelt ist und auf früheren Systemen installiert werden kann. Es ermöglicht auch den Zugriff auf die Dotnet-Funktions-API.
Antwort3
Ich habe es auf einem 2016-Server versucht und musste die von @M.Dundley bereitgestellte Zeile ändern. Ohne seine Antwort wäre ich natürlich nicht in der Lage gewesen, meinen Server zu erstellen.
Es folgt die Zeile, die ich tbimdsa
als Beispiel verwendet habe:
disable-NetAdapterbinding -name "MyAdapter" -ComponentID tbimdsa
Ich habe auch die Verwendung von bewiesen enable-NetAdapterbinding
. Ich muss Ihnen sagen, dass es nicht in allen Bindungen oder Eigenschaften funktioniert.