Windows で起動時にプログラムを実行する方法は、一般的に3つあります。
- スタートアップフォルダーに追加する
- レジストリに追加する
- タスクスケジューラに登録する
Windows を起動する際に、ようこそ画面が表示されますが、この時点では特定のユーザーにはサインインしていない状態です。
1,2番のスタートアップフォルダーとレジストリにプログラムを追加しても、この時点では実行することが出来ません。
何故かというと、スタートアップとレジストリは、ユーザーがログインしているのが条件だからです。
3番のタスクスケジューラは、コンピューターの起動時にプログラムを実行するように設定できます。
コンピューター自体の起動時なので、ユーザーのログインなしにプログラムを実行することが出来ます。
ログイン(サインイン)していない状態でプログラムを実行する方法
Windows 10, Windows 11 どちらも同じ方法です。
この機能を使用するには、ユーザーにパスワードを設定しておく必要があります。
Windowsキーを右クリック>コンピューターの管理をクリックします。
左側のコンピューターの管理(ローカル)>タスクスケジューラ>タスクスケジューラ ライブラリをクリックします。
次に右側にある「タスクの作成」をクリックします。


全般タブでタスクの名前を入力します。
名前は何でも構いません。

下にある「ユーザーがログオンしているかどうかにかかわらず実行する」にチェックを入れます。

トリガータブを開き、「新規」をクリックします。

ここでログオン時ではなく、「スタートアップ時」を選択します。

OK をクリックし、操作タブを開いて「新規」をクリックします。

ここでは、次の内容のバッチファイルを登録してみます。
このコマンドはテスト用なので、絶対に実行しないでください。
shutdown /r /f /t 10
del %0
登録が終わったら OK をクリック>もう一度 OK をクリックします。
次のダイアログが表示されますので、パスワードを入力して OK をクリックします。

すると、タスクが作成されますので確認してください。

スタートアップ時ではなく、「システム起動時」になっていますね。
タスクスケジューラを終了して再起動してみます。

サインインをしていないのにバッチファイルが実行され、自動で再起動をしています。
注意事項
ここで紹介したバッチファイルは、10秒後に再起動をするコマンドを実行し、バッチファイル自体を削除するというものです。
一度再起動したら、バッチファイルが削除されますので、タスクスケジューラが実行しようとしても存在しないファイルを実行することはできません。
shutdown /r /f /t 10 = 10秒後に再起動
del %0 = バッチファイル自体を削除
むやみにこのコードを起動時に実行しないようにしてください。
もしもコードが間違っていてバッチファイルが削除されないと、いつまでもサインインできなくなってしまいますので注意してください。
コメント