Batchdatei zum Löschen von WLAN-Profilen, jedoch mit Ausschluss von 2 GPO-zugewiesenen WLAN-Profilen

Batchdatei zum Löschen von WLAN-Profilen, jedoch mit Ausschluss von 2 GPO-zugewiesenen WLAN-Profilen

Ich führe eine Batchdatei aus, um alle persönlichen WLAN-Netzwerke von einem Windows 10-Gerät zu entfernen. Wir hatten zuvor ein Problem, bei dem WLAN-Profile unter dem SYSTEM-Konto erstellt wurden und das Profil nicht gelöscht werden konnte. Das wurde inzwischen behoben, aber zuvor unter Benutzercomputern gespeicherte Netzwerke müssen entfernt werden.

Ich muss das folgende Skript ausführen und es funktioniert wie erwartet, ABER:

@ECHO OFF
:: Checking for Admin (Right-click) Condition
CLS
NET SESSION > NUL
IF NOT %ERRORLEVEL% EQU 0 (
COLOR 4F
ECHO.
ECHO -----  WARNING! ERROR EXECUTING THE COMMAND  -----
ECHO.
ECHO.
ECHO You must right-click and select "Run as Administrator" from the pop-up menu
ECHO.
ECHO.
GOTO END
) ELSE (
CLS
)

setlocal
:PROMPT
ECHO Using this will delete ALL PERSONAL wifi networks.
ECHO Users will have to type in their password for their specific SSID when in range.
SET /P QUESTION=Are you sure? (Y/[N])?
IF /I "%QUESTION%" NEQ "Y" GOTO END
netsh wlan delete profile name=*
ECHO Wifi networks deleted successfully

:END
echo.
echo.
PAUSE

Wir haben 2 per GPO zugewiesene drahtlose Netzwerke. Sie werden durch unsere Richtlinie für drahtlose Netzwerke gepusht. Ich suche nach einer möglichen EXCLUDE-Methode, mit der ich diese beiden von Löschversuchen ausschließen kann, da ich für ALLE drahtlosen Profile einen Platzhalter verwende (Sonderfälle, in denen Benutzer Zugriff zum Löschen dieser Profile hätten). Ist so etwas möglich?

Antwort1

Um weiter darauf einzugehenAntwort von music2myearwürde ich etwas Ähnliches wie das Folgende verwenden:

FOR /F "tokens=3* delims=: " %%a IN ('netsh wlan show profiles ^| FIND " : " ^| FINDSTR /v "My Wireless Network"') DO netsh wlan delete profile name="%%b"

Sie müssen es FINDSTR /v "My Wireless Network"durch das ersetzen find, was findstrin Ihrem Fall funktioniert.

Abbauen

  • netsh wlan show profiles- Listet die auf dem Computer verfügbaren Profile auf.
  • FIND " : "- Filtern Sie alles außer den Zeilen, die die Profil-SSIDs enthalten.
  • FINDSTR /v "My Wireless Network"- Entfernen Sie die Ausnahmen aus der Liste.
  • "tokens=3* delims=: "- Teilen Sie jede Zeile in Teile auf und wählen Sie nur die SSIDs aus.
  • ^|- Das Rohr muss verlassen werden, da es sich innerhalb einer forSchleife befindet.

Weiterführende Literatur

Antwort2

Mir fallen zwei Möglichkeiten ein:

Fügen Sie eine Logik hinzu, um alle aktuell konfigurierten Wireless-Profile auf dem Computer aufzulisten, die beiden zu identifizieren, die Sie behalten möchten, und die anderen zu löschen.

Erzwingen Sie am Ende des Skripts ein gpupdate, um die Profile erneut hinzuzufügen (Hinweis: Hierzu ist möglicherweise eine aktive Domänenverbindung erforderlich).

verwandte Informationen