michi.wtr
Goto Top

Netzwerkadapter deaktivieren mit PowerShell

Kurze Frage,

und zwar möchte ich mit PowerShell auf meinem Computer den WLAN Netzwerkadapter deaktivieren und den Ethernet Adapter aktivieren. Mit "Mausklicks" funktioniert das einwandfrei und ich kann in den Netzwerkadaptereinstellungen mit Aktivieren und Deaktivieren arbeiten.

Das ganze möchte ich nun aber über die Kommandozeile und PowerShell machen, da ich das im Moment sehr häufig brauche, um zwischen den Netzwerken zu wechseln und dabei den jeweils anderen Adapter deaktivieren muss. (Why ever, ich bekomm keine Verbindung wenn ich beides aktiv habe, ist aber auch egal, das ist nicht mein Problem).

Versucht habe ich (natürlich alles als Admin ausgeführt):
Disable-NetAdapter -Name WLAN
screenshot 2023-10-18 104406

gwmi -Query "SELECT * FROM win32_networkadapter WHERE interfaceindex = 22" | iwmi -Name disable  
screenshot 2023-10-18 104640
ReturnValue = 0 ist ja eigentlich erfolgreich, leider aber ist der Netzwerkadapter nicht deaktiviert....

gwmi -Query "SELECT * FROM win32_networkadapter WHERE interfaceindex = 22" -EnableAllPrivileges | iwmi -Name disable  

Auch mit -EnableAllPrivileges gleiche Meldung ohne Erfolg

(gwmi -Query "SELECT * FROM win32_networkadapter WHERE interfaceindex = 22" -EnableAllPrivileges).Disable()  

Wieder dasselbe....

Im Internet steht zum Error bei Disalbe-NetAdapter:
How do I fix system 5 error?
If you get a system error 5 in Command Prompt or PowerShell, run those utilities with admin privileges to fix your error.

Da ich bereits aber alles als Admin ausgeführt habe ist das weniger informativ....

Ich habe mal was gelesen, dass das meine ich auch irgendwo in den GPO deaktiviert sein dürfte, dann könnte es aber wahrscheinlich auch nicht mit Mausklicks ausgeführt werden, oder?

Vielen Dank schonmal im Voraus,
Micha

Content-Key: 9645099645

Url: https://administrator.de/contentid/9645099645

Printed on: April 28, 2024 at 01:04 o'clock

Member: DerWoWusste
DerWoWusste Oct 18, 2023 at 08:54:45 (UTC)
Goto Top
Hi.

Da ich bereits aber alles als Admin ausgeführt habe...
Das impliziert nicht, dass Du es auch elevated ausgeführt hast. Rechtsklick - "als Administrator ausführen" auf die Powershellverknüpfung.
Mitglied: 7907292512
7907292512 Oct 18, 2023 updated at 09:08:32 (UTC)
Goto Top
Eben, du hast es wohl laut der Meldung nicht "elevated" ausgeführt, auch ein Admin ist erst Admin wenn er das explizit sein soll face-smile.
Im Skript eingetragen holt das hier die Elevation nach wenn es noch nicht elevated ausgeführt wird:
if(!(new-object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole(544)){start powershell -Verb runas -ArgumentList '-File',$MyInvocation.MyCommand.Definition;exit}  
Disable-Netadapter -Name WLAN
(Achtung, das oben läuft nur innerhalb eines gespeicherten Skriptes)

Gruß sid.

p.s. das Eintragen der richtigen Metrik in die Adapter-TCP-Eigenschaften, dann klappt es i.d. R. auch mit 2 aktiven Adaptern ohne einen deaktivieren zu müssen.
Member: michi.wtr
michi.wtr Oct 18, 2023 at 09:49:02 (UTC)
Goto Top
Zum Verständnis, das ist kein Skipt, sondern einfach eingegebene Befehle über die PowerShell (als Admin gestartet). Somit wären doch alle Befehle die ich eingebe auch als Administrator ausgeführt, oder?

Das mit der Metrik habe ich schon versucht, nur leider geht das nicht. Will sagen, ich möchte Ethernet benutzen, habe dort die Metrik auf 1 gestellt und bei WLAN auf 50. Trotzdem bekomme ich keine Verbindung zum internen Netzwerk. Angezeigt wird mir, dass ich mit beidem verbunden bin... Wenn ich dann WLAN ausschalte, dann gehts auf einmal.

Deshalb bin ich grade dabei, immer wieder zu switchen, indem ich die Netzwerkkarten abwechselnd aktiviere und deaktiviere, wär natürlich angenehmer über die Kommandozeile... Nichts desto trotz möchte ich ja auch nen Lerneffekt dabei haben ^^ . Alles was ich am PC mache würd ich gerne mit der Shell erledigen, ohne irgendwelche Mausklicks.

Mich wundert nur, dass ich über WMI ständig einen Code 0 bekomme, was mir sagt, die Methode sei erfolgreich gelaufen, die Adapter aber trotzdem nichts ändern, ob mit Enable oder Disable. Und als Admin ausgeführt bekomme ich mit Disable-NetAdapter die Fehlermeldung, ich hätte keine Zugriffsrechte.

Die selben befehle auf meinem privaten Notebook ausgeführt funktionieren... Das Problem ist lediglich auf meinem Arbeits Notebook, welches über die Domain verwaltet wird, weshalb ich schätze, das könnte eine GPO Einstellung sein. Leider aber finde ich dazu nichts. Vermutlich weil ich mich dahingehend noch überhaupt nicht auskenne. Das würde ich aber gerne, ebenso wie ich es mit der Skriptausführung gemacht habe, auf meinem Rechner deaktivieren.

Gruß, Micha
Member: DerWoWusste
DerWoWusste Oct 18, 2023 at 09:52:44 (UTC)
Goto Top
PowerShell (als Admin gestartet)
Also elevated oder nicht elevated?
Alles was ich am PC mache würd ich gerne mit der Shell erledigen, ohne irgendwelche Mausklicks.
Kannst Du, @7907292512 hat Dir ein Skript gegeben, das Elevation automatisch anfordert.
Mitglied: 7907292512
7907292512 Oct 18, 2023 updated at 10:23:22 (UTC)
Goto Top
Das Problem ist lediglich auf meinem Arbeits Notebook, welches über die Domain verwaltet wird, weshalb ich schätze, das könnte eine GPO Einstellung sein.
Dann ist euer Netzwerk-Admin dein Ansprechpartner der weiß was bei euch zu tun ist ... face-smile.
Könnte ja sein das das dein Admin nicht will das du mit den Adaptern spielst, und sie direkt wieder aktiviert wenn man sie manuell deaktiviert face-wink, das geht auch per Skritpt /WMI Event das im Hintergrund anspringt sobald sich der Status eines Netzwerkadapters ändert.
Member: Starmanager
Starmanager Oct 18, 2023 at 10:38:54 (UTC)
Goto Top
Solltest Du zufaellig ein HP Notebook haben kann man die automatische Umschaltung im Bios aktivieren. Sobald das Lan Kabel eingesteckt ist wird WLAN deaktiviert.
Member: michi.wtr
michi.wtr Oct 19, 2023 updated at 08:01:49 (UTC)
Goto Top
Quote from @DerWoWusste:

PowerShell (als Admin gestartet)
Also elevated oder nicht elevated?
Ich glaube ich verstehe diese frage nicht ganz. Ich führe hier aber kein Skript aus sondern tippe die Befehle als Admin in die Shell ein (als Admin gestartet). Also ja, elevated.
Alles was ich am PC mache würd ich gerne mit der Shell erledigen, ohne irgendwelche Mausklicks.
Kannst Du, @7907292512 hat Dir ein Skript gegeben, das Elevation automatisch anfordert.
Das Skript von @7907292512 habe ich schon in der Vergangenheit ein paar mal benutzt, das kenne ich schon. Ist mega nützlich, aber bringt mir in diesem Fall nichts. Wenn ich die befehle so eingebe ins Terminal dann passiert nix, weil ich schon Admin bin face-smile


Quote from @7907292512:

Dann ist euer Netzwerk-Admin dein Ansprechpartner der weiß was bei euch zu tun ist ... face-smile.
Könnte ja sein das das dein Admin nicht will das du mit den Adaptern spielst, und sie direkt wieder aktiviert wenn man sie manuell deaktiviert face-wink, das geht auch per Skritpt /WMI Event das im Hintergrund anspringt sobald sich der Status eines Netzwerkadapters ändert.
Das ist nicht der Fall face-smile. Wir haben keine Skripte oder WMI Events im Hintergrund, sind eine 2 Mann IT, 95% der GPO sind als default ausgewählt. Mit PowerShell bzw. WMI kenne nur ich mich aus im Unternehmen. Aber selbst wenn es ein WMI Event sein sollte, dann sollte ich eigentlich ja keine Exception bekommen bei Disable-NetworkAdapter oder Enable-NetworkAdapter, dass ich darauf kein Zugriff hätte. Das würde die Einstellung ändern und danach direkt wieder zurücksetzen. Dazu ergänzend, ich kann von Hand die Einstellungen ohne Probleme ändern, das würde das ja auch ausschließen. (Wobei mir auffällt, dass auch meine GPO Vermutung dadurch hinfällig ist, außer es gäbe eine GPO die das Aktivieren/Deaktivieren der Netzwerkadapter lediglich über PowerShell und/oder WMI verhindert.)


Quote from @Starmanager:

Solltest Du zufaellig ein HP Notebook haben kann man die automatische Umschaltung im Bios aktivieren. Sobald das Lan Kabel eingesteckt ist wird WLAN deaktiviert.
Leider nein, ist ein Dell Notebook, im Prinzip geht mir das auch nicht mal um das Problem, dass ich das per Hand machen muss als mehr um das Problem dass es auf dem Rechner mit PowerShell nicht funktioniert und ich nur gern wüsste weshalb.

Hier nochmal die Schritt für Schritt Anleitung, was ich gemacht habe:
1.
screenshot 2023-10-19 092745

2.
screenshot 2023-10-19 094456
Member: DerWoWusste
Solution DerWoWusste Oct 19, 2023 at 08:11:48 (UTC)
Goto Top
Gut, dann wäre das endlich geklärt. Schreib doch nächstes Mal gleich "elevated ausgeführt", das beugt Rückfragen vor.
Teste bitte auf der (elevated!) cmd:
netsh interface set interface name="WLAN" admin=ENABLED  
Selbes Resultat?
Member: michi.wtr
michi.wtr Oct 19, 2023 at 08:46:50 (UTC)
Goto Top
Quote from @DerWoWusste:

Gut, dann wäre das endlich geklärt. Schreib doch nächstes Mal gleich "elevated ausgeführt", das beugt Rückfragen vor.
Naja, dachte das hätte ich:
Versucht habe ich (natürlich alles als Admin ausgeführt):
...
Da ich bereits aber alles als Admin ausgeführt habe ist das weniger informativ....

Sehr nice, das hat funktioniert:
Quote from @DerWoWusste:

netsh interface set interface name="WLAN" admin=ENABLED  

Sehr komisch, weshalb es mit WMI und PowerShell nicht geklappt...
Mitglied: 7907292512
7907292512 Oct 19, 2023 updated at 08:53:46 (UTC)
Goto Top
Da hat vermutlich jemand von euch die WMI Berechtigungen verbogen (wmimgmt.msc). Oder arbeiitet im constrained language mode.
Member: michi.wtr
michi.wtr Oct 19, 2023 at 09:11:32 (UTC)
Goto Top
Quote from @7907292512:

Da hat vermutlich jemand von euch die WMI Berechtigungen verbogen (wmimgmt.msc). Oder arbeiitet im constrained language mode.

Hat mich auch gewundert. Wie gesagt, auf meinem Heim PC hat das alles einwandfrei funktioniert... Mit der WMI Management Console kenne ich mich leider nicht aus, aber falls du einen constrained language mode für PowerShell meinst, das ist nicht der Fall. Vor mir hat im Unternehmen noch keiner PowerShell genutzt, evtl. mal versehentlich um eine Datei zu löschen o.ä. aber dann nur weil man eigentlich die CMD öffnen wollte ^^. Endpoints etc. sind nie konfiguriert worden.
Member: DerWoWusste
DerWoWusste Oct 19, 2023 at 09:13:40 (UTC)
Goto Top
Schön, dass das funktioniert.

Noch ein letztes Mal zu
Naja, dachte das hätte ich
Nee, "als Admin gestartet" kann heißen: "in starte es elevated" oder aber "ich bin zwar als Admin angemeldet, starte es aber normal" - letzteres ist nicht elevated und die Adminrechte werden dabei nicht ausgenutzt.
Member: michi.wtr
michi.wtr Oct 19, 2023 at 09:25:37 (UTC)
Goto Top
Quote from @DerWoWusste:

Nee, "als Admin gestartet" kann heißen: "in starte es elevated" oder aber "ich bin zwar als Admin angemeldet, starte es aber normal" - letzteres ist nicht elevated und die Adminrechte werden dabei nicht ausgenutzt.

Verstehe :D ging davon aus als Admin starten = sudo command
Gut zu wissen ^^

Danke euch auf jeden Fall, ist 1000x angenehmer nur einfach zwischen den zwei Befehlen auf dem Terminal zu wechseln.
Mitglied: 7907292512
7907292512 Oct 19, 2023 updated at 09:35:14 (UTC)
Goto Top
Tja das Wort "Admin" sollte man echt verbieten, das kann halt je nach Kontext 1001 Bedeutungen haben.