ワイヤレス プロファイルを削除するが、2 つの GPO 割り当て Wi-Fi プロファイルを除外するバッチ ファイル

ワイヤレス プロファイルを削除するが、2 つの GPO 割り当て Wi-Fi プロファイルを除外するバッチ ファイル

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

GPO が割り当てられたワイヤレス ネットワークが 2 つあります。これらはワイヤレス ネットワーク ポリシーを通じてプッシュされます。すべてのワイヤレス プロファイルに対してワイルドカードを実行しているため (ユーザーがこれらを削除する権限を持つ特殊なケース)、これら 2 つを削除の試行から除外できる、可能な 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"に置き換える必要があります。findfindstr

壊す

  • netsh wlan show profiles- コンピューターで使用可能なプロファイルを一覧表示します。
  • FIND " : "- プロファイル SSID を含む行を除くすべてをフィルタリングします。
  • FINDSTR /v "My Wireless Network"- リストから例外を削除します。
  • "tokens=3* delims=: "- 各行を分割し、SSID のみを選択します。
  • ^|- パイプはforループ内にあるためエスケープする必要があります。

参考文献

答え2

考えられる方法は2つあります。

コンピューター上で現在構成されているすべてのワイヤレス プロファイルを列挙し、保持する 2 つを識別し、その他を削除するロジックを追加します。

スクリプトの最後に gpupdate を強制してプロファイルを再度追加します (注: アクティブなドメイン接続が必要になる場合があります)。

関連情報