Dieses Blog durchsuchen

Donnerstag, 20. Januar 2011

Netzwerkadapter Steuerung mit der Windows Powershell

Wer unter Windows mit 2 Netzwerken zwischen 2 Netzwerken will, kann z.B. mit einem einfachen Script die Powershell nutzen.

Hier eine einfache Anleitung:

Um die Windows Power Shell vollständig nutzen zu können und Systemeinstellungen zu ändern,benötigen wir Adminrechte. Einstellungen zu Benutzerkonten und Berechtigungen können unter,Systemsteuerung → Benutzerkonten → Eigenen Kontotyp ändern, geändert werden.
Nun öffnen wir die Windows Power Shell (Programme → Zubehör → Windows Power Shell)

Als erstes müssen wir heraus finden welche „DeviceID“ unsere Netzwerkschnittstellen haben.
Dazu geben wir in die Power Shell folgendes ein:

get-wmiobject win32_networkadapter | formattable ServiceName, AdapterType, Name, NetworkAdd, DeviceID

Eine Liste mit allen Netzwerkadaptern erscheint. Wir suchen uns die Raus die wir benötigen, in
meinem Fall die Schnittstellen mit der DeviceID 7 und 11.
Um später leichter mit diesen Schnittstellen arbeiten zu können, speichern wir diese mit folgenden
Befehl in eine Variable. Ich habe sie „$intern“ und „$extern“ benannt.

$intern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 7}

$extern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 11}


Mit den Variablen können wir die Netzwerkkarten direkt ein- und ausschalten.

$extern.disable()
$intern.enable().










Leider werden die Variablen nicht gespeichert und wären nach einem Neustart des Systems nicht
mehr verfügbar. Glücklicherweise besteht die Möglichkeit sich Profile in der Power Shell anzulegen
um z.B. solche Variablen zu speichern.

Mit folgenden Befehl legt man ein Profil an:

new-item -path $profile -itemtype file -force









Hinweis: dieses Profil ist nur auf dem Benutzerkonto verfügbar auf dem es erstellt wurde!
Im nächsten Schritt schreiben wir unsere Variablen in das eben erstellte Profil. Dazu öffnen wir das
Profil mit dem Befehl:


notepad $Profile

Nun können wir bequem die beiden Variablen in die Notepad datei eintragen und im Anschluss
speichern. Dazu einfach folgendes in die Datei schreiben:

$intern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 7}
$extern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 11}






Hinweis: Windows befüllt nun bei jeden Power Shell Aufruf die Variablen mit den Daten unserer
Schnittstellen. Die DeviceID bleibt immer gleich!
Um später alles bequem zusteuern schreiben wir noch schnell 2 kleine Scripte in denen folgendes
steht:

Um extern ein- und intern auszuschalten:

$intern.disable()
$extern.enable()

Um intern ein- und extern auszuschalten:

$extern.disable()
$intern.enable()

Diese kleinen Scripte speichern wir nun als name.ps1. Um diese Scripte ausführen zu können
müssen wir der Power Shell noch die Erlaubnis dazu geben:

Set-ExecutionPolicy RemoteSigned

Nun können die beiden Scripte jederzeit ausgeführt werden.

Keine Kommentare:

Kommentar veröffentlichen