Windows 10Windows 11カスタマイズセキュリティバッチファイル & VBScript便利機能

Win10/Win11 バッチファイル実行時にパスワードの入力を求める

スポンサーリンク

スポンサーリンク
スポンサーリンク
スポンサーリンク

今回は、Windows 10 または Windows 11 でバッチファイル(拡張子 .bat)をダブルクリックなどで実行する際にパスワードの入力を求めるようにする方法を紹介します。

通常バッチファイルを実行すると、そのまま実行されるか、管理者として実行をすればユーザーアカウント制御の画面が表示され、「はい」をクリックすると実行されます。

今回の方法でパスワードの入力を求めるようにすると、正しいパスワードを入力しない限り先に進むことができなくなります。

バッチファイルを実行させたくない場合などにご使用ください。

バッチファイル実行時にパスワードの入力を求めるための設定

バッチファイル実行時にパスワードの入力を求めるためには、パスワードの入力を求めるバッチファイルの作成、及びレジストリの編集が必要になります。

レジストリの操作を間違えるとシステムが起動できなくなるなど不具合が起きる可能性があります。事前にシステムの復元などでバックアップを取り、自己責任で行うようお願いします。

パスワードの入力を求めるバッチファイルの作成

バッチファイルの作成方法は、次のページを参考にしてください。

バッチファイルとは?バッチファイルの実行方法

「pass.bat」の作成

「pass.bat」というバッチファイルを作成し、次の内容を入力(コピー)して保存します。

@echo off

echo "%*"
:loop
set /p in=パスワードの入力:
if not "%in%"=="123" cls&echo パスワードが違います。正しいパスワードを入力してください。&goto loop

cls&"%*"

if not “%in%”==”123” の 123 がパスワードですので、自由に変更してみてください。

作成した「pass.bat」を任意の場所(ここでは Cドライブ直下)に移動しておきます。

レジストリの編集

Windowsキー + R を押して、「ファイル名を指定して実行」を開き、「regedit」と入力して Enter をします。

レジストリエディタが開きますので、事前に次のキーをバックアップしておきましょう。

HKEY_CLASSES_ROOT\batfile\shell

1.HKEY_CLASSES_ROOT\batfile\shell\open\command キーを開き、右側の欄にある「(既定)」をダブルクリックで開きます。

2.値のデータが「”%1″ %*」となっていますので、次の値に変更して OK をクリックします。

"C:\pass.bat" %1

C:\pass.bat とは、先ほど作成したパスワードの入力を求めるバッチファイル「pass.bat」のフルパスです。

HKEY_CLASSES_ROOT\batfile\shell\open\command キーの既定値 – 画像クリックで拡大

3.HKEY_CLASSES_ROOT\batfile\shell\runas\command キーを開き、右側の欄にある「(既定)」をダブルクリックで開きます。

4.値のデータが「%SystemRoot%\System32\cmd.exe /C “%1” %*」となっていますので、次の値に変更して OK をクリックします。

%SystemRoot%\System32\cmd.exe /C "C:\pass.bat" %1
HKEY_CLASSES_ROOT\batfile\shell\runas\command キーの既定値 – 画像クリックで拡大

これで設定は完了しましたので、レジストリエディタは終了しておきましょう。

※拡張子「.cmd」ファイルに対してもパスワードを求めたい場合は、次のキーを開き、「.bat」ファイルと同じ手順で値を変更します。

HKEY_CLASSES_ROOT\cmdfile\shell\open\command
HKEY_CLASSES_ROOT\cmdfile\shell\runas\command

スポンサーリンク

バッチファイルを実行してみる

では、どこでもいいので適当にバッチファイルを作成して実行してみましょう。

サンプル:

@echo off
echo You have entered the correct password.
pause

バッチファイルを実行するとパスワードを求められます。

バッチファイルを実行するとパスワードを求められる

間違ったパスワードを入力して Enter を押すと、「パスワードが違います。正しいパスワードを入力してください。」と表示され、再度パスワードの入力を求めます。

間違ったパスワードを入力した場合、再度パスワードの入力を求められる

正しいパスワードを入力して Enter を押すとそのまま実行されます。

正しいパスワードを入力して Enter を押すとそのまま実行される

管理者として実行した場合は、ユーザーアカウント制御の画面で「はい」をクリックした後にパスワードを求められます。

元に戻す方法

元に戻す場合は、バックアップしたレジストリファイルを実行します。

今回の方法でパスワードを求めるようにすれば、ご自身やご家族などが誤ってバッチファイルを実行してしまうことを防げます。

※バッチファイルを「ファイル名を指定して実行」やサードパーティ製のアプリから直接実行してもパスワードを求められますが、「cmd /c “バッチファイルのフルパス”」で実行したり、コマンドプロンプトからフルパスを指定して実行するとパスワードは求められません。

コメント(降順)

タイトルとURLをコピーしました