用於刪除無線設定檔但排除 2 個 GPO 分配的 wifi 設定檔的批次文件

用於刪除無線設定檔但排除 2 個 GPO 分配的 wifi 設定檔的批次文件

我正在運行一個批次檔來從 Windows 10 裝置中刪除所有個人 WiFi 網路。我們之前遇到過一個問題,即 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

擴展至音樂2年的回答,我會使用類似以下內容的東西:

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 來重新新增設定檔(注意:這可能需要活動網域連線。)

相關內容