Verwenden von Powershell zum entfernen nicht vorhanden Netzwerkadapter
Ich bin versucht, zu automatisieren, per PowerShell eine Reihe von zeitaufwendigen Aufgaben, die ich habe Vorform, um eine neue VM-Vorlage, eine davon ist die Beseitigung aller den Netzwerkadapter aus der VM und Reinigung der Geräte-Manager nicht vorhanden-Geräte.
Nach entfernen Sie den Netzwerkadapter aus der VM, ich habe versucht, mit folgenden code-snippets, die das gleiche tun, reinigen Sie den Geräte-Manager.
wmic nic where "(servicename is null)" delete
gwmi win32_networkadapter | ?{$_.ServiceName -eq $null} | rwmi
In beiden Fällen erhalte ich die Fehlermeldung "Provider nicht in der Lage ist, die angeforderte operation". Überprüfen Sie die Ereignisprotokolle, WMI-Aktivität schien nicht zu helfen: "ResultCode" = 0x80041024; PossibleCause = Unbekannt.
Ist jeder in der Lage sein, etwas ähnliches zu tun, das entfernt die nicht vorhandenen Geräte und ist in der Lage zu finden, ein Problem mit den oben genannten Befehlen?
EDIT: ich habe versucht, mit DevCon das Gerät entfernen, aber es scheint zu funktionieren nur mit aktuellen Geräten. Ich bin jetzt kämmen durch die Registrierung zu sehen, wenn es einen bestimmten Schlüssel oder eine Reihe von Tasten, die, wenn Sie entfernt würde, entfernen Sie die Netzwerkkarte aus dem Geräte-Manager.
- Ich glaube nicht, dass powershell unterstützt diese Funktionalität noch, Sie können nur deaktivieren Sie das Gerät, nicht installieren/deinstallieren von Gerätetreibern. Es gibt immer die guten alten Befehlszeilen-tools, die Sie aufrufen können, powershell obwohl: support.microsoft.com/en-us/kb/311272
- Vielen Dank für die KB. Ich hatte gehofft, in der Lage sein zu verwenden, built-in command line, anstatt ein weiteres tool, aber ich denke, ich werde einen Versuch geben mit DevCon.
- Versucht, mit Hilfe von DevCon und bekam Fehler (entfernen Sie nicht), Lesen Sie einige Foren und sah, dass DevCon funktioniert nur auf vorhanden Geräten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese eine Frage beschäftigte mich eine Weile, und ich kam mit ein bisschen mehr manuelle Ansatz, aber es funktioniert, so hoffentlich wird dies helfen, andere:
1) stellen Sie zunächst sicher, dass Ihre Liste aus Geräten, die Sie sind dabei zu bereinigen sind richtig:
2) Wenn Sie zufrieden mit der Liste von Get-NetAdapters du bist zu Kaibosh, führen Sie die folgenden:
HINWEIS: Ihre-Liste der Adapter, die bei Schritt 1 muss NUR die Adapter, die Sie löschen möchten. Wenn Sie haben extras drin, passen Sie die filter (? Status -eq, der XXX, wie zB: ? FriendlyName -wie "Broadcom*") entsprechend!
Dieser Registrierungsschlüssel enthält alle hardware-Einstellungen des Gerätes innerhalb der registry:
HKEY_LOCAL_MACHINE\system\currentcontrolset\enum
Erste Abfrage die Gegenwart und aktivierten Netzwerkadapter mit WMI und Ihre PNPDeviceId. Dieser Wert wird Ihnen sagen, welche Unterschlüssel der Netzwerk-Adapter befindet.
Nächste Abfrage der registry für jeden Unterschlüssel, und finden Sie alle Adapter. Analysieren Sie die vollständigen registry-Schlüssel zu schneiden nach unten auf die gleiche Länge wie die PNPDeviceId Werte; etwa PCI\VEN_80AD&DEV_15A2&SUBSYS_062D1028&REV_02\2&11483669&0&C9.
Vergleichen Sie die beiden Listen und finden alle verwaisten registry-Schlüssel. Wenn gefunden, löschen Sie die Registrierungsschlüssel, die durch das aufzählen der system account entfernen Sie den Netzwerkadapter aus dem Geräte-Manager. Ich verwendet PSExec.exe zum ausführen der reg-Befehl löschen, da das system-Konto.
Hier ist etwas code, um durchzuführen, was ich gerade erklärt habe.
Einige änderungen in Vorherige Skript.
Ich es geschafft, zu lösen ein ähnliches problem Dank auf dieser Seite. Ich verbesserte mich, dass script etwas und veröffentlicht es über mein repo hier: removeGhosts.ps1
Mit dieser version entfernen Sie alle versteckte Netzwerk-Geräte, können Sie das wie folgt:
Diese werden zur Bestätigung aufgefordert, für jedes Gerät vor dem entfernen der
-Force
option unterdrückt dieses Verhalten. Ohne diese option wird das script entfernen Sie alle versteckten Geräte, die klingt wie etwas, das der Fragesteller auch interessiert.