Windows Hello 顔認証が動作しなくなる問題を解決する

Kinect v2でWindows Helloを使ってみる

Kinect v2でWindows Hello 顔認証を超絶便利に利用していたわけですが、この動作しなくなる問題に頭を悩ませていました。

Advertisement

Windows Hello 顔認証が動作しなくなる問題

ある程度の期間は問題なく動作するのですが、突然、”申し訳ございません。問題が発生しました。PINを使ってもう一度サインインしてください。”や”カメラをオンにできませんでした。PINを使ってサインインしてください。”などのエラーが発生し、Windows Hello 顔認証が利用できなくなる問題が発生していました。

このエラーが発生した後もWebカメラとしてやKinectのSDKでは問題なく深度センサーなどが動いていたので問題なく動作するはずなのですが、Windows Helloでは”Windows Hello 顔認証と互換性のあるカメラが見つかりませんでした”などとエラーが発生していて動作させる気がない状態でした。

“Windows Biometric Service”の停止で解決

Windows管理ツールを起動して”Windows Biometric Service”を停止するか、タスクマネージャーのサービスから”WbioSrvc”を停止か再起動することで問題を解決することが出来ました。

今まで再起動していた手間は何だったんだ・・・

バッチファイルを作成してダブルクリックするだけで停止できるようにする

停止するだけなのでそこまでめちゃくちゃ面倒なわけではありませんが、私の場合は数日に一回程度は停止する必要がありそうなのでできるだけ楽をするためにバッチファイルを作成してダブルクリックするだけで停止できるようにします。

サービスの停止

net stop サービス名

このコマンドでサービスを停止することが出来ます。なお起動する場合はstartです。

今回の場合は、

net stop "Windows Biometric Service"

とすることで停止することが出来ます。

管理者権限で実行

これでOKかと思いましたが、アクセスを拒否されたので管理者権限で実行します。

管理者権限で実行する方法は色々あるのですが、一つのバッチファイルで済ませたかったので、

こちらのコマンドを流用させていただきました。

whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
powershell start-process %~0 -verb runas
exit
)
net stop "Windows Biometric Service"
exit

このように記述することで、管理者権限で実行されていない場合はUACプロンプトが表示され、管理者権限で再実行された状態になりサービスが停止されます。

なお、バッチファイル名には空白と日本語を利用しないほうが無用なエラーが発生しないので無難です。

Advertisement

キーショートカットで画面スリープ+ロックをかける

あとはこのバッチファイルのショートカットを作成して適当な場所に配置し簡単に実行できるようにしたり、ショートカットキーで実行できるようにしたりと自由です。