Estoy ejecutando un archivo por lotes para eliminar todas las redes WiFi personales de un dispositivo con Windows 10. Anteriormente tuvimos un problema donde los perfiles WiFi se creaban bajo la cuenta SISTEMA y no le permitía eliminar el perfil. Esto ya se ha solucionado, pero es necesario eliminar las redes anteriores guardadas en las computadoras de los usuarios.
Tengo que ejecutar el siguiente script y funciona como se esperaba, PERO:
@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
Contamos con 2 redes inalámbricas GPO asignadas. Se aplican a través de nuestra política de red inalámbrica. Buscando un posible método EXCLUDE que me permita excluir a esos dos de intentar eliminarlos, ya que estoy ejecutando un comodín para TODOS los perfiles inalámbricos (casos especiales en los que los usuarios tendrían acceso para eliminarlos). ¿Algo como esto posible?
Respuesta1
Para ampliarLa respuesta de music2myear, usaría algo similar a lo siguiente:
FOR /F "tokens=3* delims=: " %%a IN ('netsh wlan show profiles ^| FIND " : " ^| FINDSTR /v "My Wireless Network"') DO netsh wlan delete profile name="%%b"
Deberá reemplazarlo FINDSTR /v "My Wireless Network"
con lo que find
funcione findstr
en su caso.
Descomponer
netsh wlan show profiles
- Listar los perfiles disponibles en el ordenador.FIND " : "
- Filtre todo menos las líneas que contienen los SSID del perfil.FINDSTR /v "My Wireless Network"
- Eliminar las excepciones de la lista."tokens=3* delims=: "
- Divide cada línea en pedazos y elige solo los SSID.^|
- Es necesario evacuar el tubo porque está dentro de unfor
bucle.
Otras lecturas
Respuesta2
Se me ocurren dos formas:
Agregue lógica para enumerar todos los perfiles inalámbricos configurados actualmente en la computadora, identifique los dos que desea conservar y elimine los demás.
Fuerce una actualización de gp al final del script para volver a agregar los perfiles (nota: esto puede requerir una conexión de dominio activa).