Пакетный файл для удаления профилей беспроводной сети, но исключает 2 профиля Wi-Fi, назначенных GPO

Пакетный файл для удаления профилей беспроводной сети, но исключает 2 профиля Wi-Fi, назначенных GPO

Я запускаю пакетный файл для удаления всех персональных сетей WiFi с устройства Windows 10. Ранее у нас была проблема, когда профили WiFi создавались под учетной записью SYSTEM, и это не позволяло удалить профиль. С тех пор это было исправлено, но предыдущие сети, сохраненные под компьютерами пользователей, необходимо удалить.

У меня есть следующий скрипт для запуска, и он работает так, как и ожидалось, НО:

@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

У нас есть 2 назначенных беспроводных сети GPO. Они проталкиваются через нашу политику беспроводной сети. Ищу возможный метод EXCLUDE, который позволит мне исключить эти две сети из попыток удаления, поскольку я запускаю подстановочный знак для ВСЕХ беспроводных профилей (особые случаи, когда пользователи будут иметь доступ для их удаления). Возможно ли что-то вроде этого?

решение1

Чтобы расширитьответ music2myear, я бы использовал что-то похожее на следующее:

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

Вам нужно будет заменить его FINDSTR /v "My Wireless Network"на тот find, который findstrподойдет в вашем случае.

Авария

  • netsh wlan show profiles- Перечислите профили, доступные на компьютере.
  • FIND " : "- Отфильтровать все, кроме строк, содержащих SSID профиля.
  • FINDSTR /v "My Wireless Network"- Удалить исключения из списка.
  • "tokens=3* delims=: "- Разделите каждую строку на части и выберите только SSID.
  • ^|- Трубу необходимо оборудовать эвакуатором, поскольку она находится внутри forпетли.

дальнейшее чтение

решение2

Мне приходят на ум два способа:

Добавьте логику для перечисления всех настроенных в данный момент беспроводных профилей на компьютере, определите два, которые вы хотите сохранить, и удалите остальные.

Принудительно выполните gpupdate в конце скрипта, чтобы повторно добавить профили (примечание: для этого может потребоваться активное подключение к домену.)

Связанный контент