LoginSignup
1
1

More than 3 years have passed since last update.

UWFフィルターの有効か無効かだけを抽出してコマンドプロンプトから知る方法

Posted at

Windows 10 IoT LTSB とかに付いてくる書き込みフィルター、いわゆる書き込み保護のコマンドについて。

統合書き込みフィルター処理 (UWF) 機能 | Microsoft Docs
https://docs.microsoft.com/ja-jp/windows-hardware/customize/enterprise/unified-write-filter

uwfmgr.exe | Microsoft Docs
https://docs.microsoft.com/ja-jp/windows-hardware/customize/enterprise/uwfmgrexe

uwfmgr get-configの表示が長ったらしく、フィルタの有効か無効かだけをコマンドプロンプトから知る方法。
なんと、uwfmgr get-config | find "状態"とかってやると、なんとパイプを通る時に文字化けするという謎仕様。
PowerShellを使って文字コードを変えようにも、そもそもパイプ通る時に「標準出力が文字化け」してる感じなので、「Out-File -Encoding default」とかでも無理でどうしようもない。

解決方法は以下。
PowerShellから、WMIオブジェクトのプロパティを見ればいいらしい。

check_uwf_filter.bat
@echo off
::管理者権限のチェック
openfiles >nul 2>&1
if errorlevel 1 (
    echo "管理者権限で実行してください。"
    pause
    exit
)

::WMIオブジェクトの「UWF_Filter」のプロパティを確認する
powershell $COMPUTER = \"localhost\";^
$NAMESPACE = \"root\standardcimv2\embedded\";^
$objUWFInstance = Get-WmiObject -Namespace $NAMESPACE -Class UWF_Filter;^
if($objUWFInstance.CurrentEnabled) { ^
    $CurrentStatus = \"有効\";^
} else { ^
    $CurrentStatus = \"無効\";^
} ^
if($objUWFInstance.NextEnabled) { ^
    $NextStatus = \"有効\";^
} else { ^
    $NextStatus = \"無効\";^
} ^
echo \"ライトプロテクト状態\";^
echo \" 現在   : $CurrentStatus\";^
echo \" 次回起動時: $NextStatus\";

::表示残すため一時停止
pause

はぁ、めでたしめでたし。しかし糞仕様過ぎないか・・・。
check.png

参考サイト

VBSにてUWFの有効状態を確認できない
https://social.technet.microsoft.com/Forums/ie/ja-JP/d4ac515a-c547-4a69-97da-3bbd8042c214/vbsuwf?forum=win10itprogeneralJP

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1