Windowsの起動時やサインイン時にプログラムを自動実行させる方法

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

Windowsには、OSを起動したときやユーザーがサインインしたときに、特定のアプリやプログラムを自動的に実行させる「スタートアップ」という機能があります。

そこでここでは、スタートアップ機能を使って特定のアプリやプログラムをWindowsを起動したときやユーザーがサインインしたときに自動実行させる方法を解説します。

Windowsの起動と同時にアプリを自動実行させる

Windowsの起動と同時(ユーザーがサインインする前)に特定のアプリやプログラムを自動実行させたいときは、タスクスケジューラーまたはグループポリシーで設定します。

Windowsの起動と同時(ユーザーがサインインする前)に実行させるプログラムは、画面操作やユーザーによる入力が不要なプログラムに限られ、一般的なデスクトップアプリなどは正常に実行できないので注意が必要です。

タスクスケジューラで設定

タスクスケジューラで設定するときは、タスクスケジューラを起動して画面右側のメニューから「タスクの作成」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「タスクの作成」画面が表示されるので、「全般」タブで以下の項目を設定します。

  • 「名前」に任意のわかりやすい名前を入力します。
  • プログラムを実行するユーザーを指定したいときは「タスク実行時に使うユーザーアカウント」で「ユーザーまたはグループの変更」をクリックして、ユーザーまたはグループを指定します。
  • 「ユーザーがログオンしているかどうかにかかわらず実行する」を選択します。
  • 管理者権限が必要なプログラムを実行させたいときは「最上位特権で実行する」にチェックを入れます。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

次に「トリガー」タブで「新規」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「新しいトリガー」画面が表示されるので、「タスクの開始」で「スタートアップ時」を選択して「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

次に「操作」タブで「新規」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「新しい操作」画面が表示されるので、以下の項目を設定して「OK」をクリックします。

  • 「操作」から「プログラムの開始」を選択します。
  • 「参照」をクリックして、実行したいプログラムを指定します。(ここでは例として、バッチファイル「D:¥test.bat」を指定しています。)

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

次に「条件」タブで「コンピューターを AC 電源で使用している場合のみタスクを開始する」のチェックを外して「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

作成したタスクが「タスクスケジューラライブラリ」の一覧に表示されていることを確認します。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

以上で、設定完了です。

グループポリシーで設定

グループポリシーで設定するときは「ローカルグループポリシーエディター」を起動し、画面左側のメニューで「コンピューターの構成」>「スクリプト(スタートアップ/シャットダウン)」を選択して、画面右側で「スタートアップ」をダブルクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「スタートアップのプロパティ」画面が表示されるので「追加」をクリックして、実行させたいプログラムを指定して「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

スタートアップスクリプトとして設定したプログラムはSYSTEM権限で実行されます。

「スタートアップのプロパティ」画面に戻ったら「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

最後にポリシーを適用するために、コマンドプロンプトを起動して「gpupdate」を実行します。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

以上で設定完了です。

ユーザーのサインインと同時にアプリを自動実行させる

ユーザーのサインインしたときに特定のアプリやプログラムを自動実行させたいときは、スタートアップフォルダーやレジストリ、タスクスケジューラー、グループポリシーで設定できます。

スターアップフォルダーで設定

スターアップフォルダーを使った方法はとても簡単で、以下のフォルダーに実行させたいプログラムまたはプログラムのショートカットファイルを配置するだけです。

現在サインインしているユーザーがサインインしたときのみ実行させたいときは、以下のフォルダーに配置します。

C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

すべてのユーザーがサインインしたときに実行させたいときは、以下のフォルダーに配置します。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Windowsに標準搭載されているアプリやMicrosoft Storeからインストールしたストアアプリを起動させたいときは、スタートメニューのプログラム一覧から該当のアプリをスタートアップフォルダーにコピーすることで対応できます。

なお、システムの安定性を保つためにスタートアップフォルダーに配置したアプリの起動は、他の処理に比べて優先度が低くなっており、サインインしてからアプリが実行されるまでに遅延が発生します。

より早くアプリを実行させたいときは、スタートアップフォルダーではなく、下に紹介しているレジストリの「Run」キーへ登録することで、スタートアップフォルダーに登録するよりおおむね30秒ほど早く実行されます。

レジストリで設定

レジストリで設定するときは、管理者権限でコマンドプロンプトを起動して、以下のコマンドを実行します。

現在サインインしているユーザーがサインインしたときのみ実行させたいときは、以下のようにコマンドを実行します。

C:\> reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v "任意の分かりやすい名前" /t REG_EXPAND_SZ /d "実行させたいプログラムファイルのフルパス"

すべてのユーザーがサインインしたときに実行させたいときは、以下のようにコマンドを実行します。

C:\> reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "任意の分かりやすい名前" /t REG_EXPAND_SZ /d "実行させたいプログラムファイルのフルパス"

なお、レジストで設定する方法は、アプリをインストールしたときなどに自動的に登録されるものがほとんどで、ユーザーが手動で登録することはあまりありません。

タスクスケジューラで設定

タスクスケジューラで設定するときは、タスクスケジューラを起動し画面右側のメニューから「タスクの作成」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「タスクの作成」画面が表示されるので、「全般」タブで以下の項目を設定します。

  • 「名前」に任意のわかりやすい名前を入力します。
  • 「タスク実行時に使うユーザーアカウント」で「ユーザーまたはグループの変更」をクリックして「Users」を選択します。(ドメイン環境なら「Domain Users」)
  • 管理者権限が必要なアプリを起動させたいときは「最上位特権で実行する」にチェックを入れます。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

次に「トリガー」タブで「新規」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「新しいトリガー」画面が表示されるので、以下の項目を設定して「OK」をクリックします。

  • 「タスクの開始」で「ログオン時」を選択します。
  • 「設定」では、どのユーザーでサインインしてもタスクを実行したいときは「任意のユーザー」を選択し、特定のユーザーがサインインしたときのみタスクを実行したいときは「特定のユーザー」を選択し、タスクを実行するユーザーを指定します。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

次に「操作」タブで「新規」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「新しい操作」画面が表示されるので、以下の項目を設定して「OK」をクリックします。

  • 「操作」から「プログラムの開始」を選択します。
  • 「参照」をクリックして、実行したいアプリを選択します。(ここでは例として「Microsoft Edge」を指定します。)

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

次に「条件」タブで「コンピューターを AC 電源で使用している場合のみタスクを開始する」のチェックを外して「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

作成したタスクが「タスクスケジューラライブラリ」の一覧に表示されていることを確認します。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

以上で、設定完了です。

タスクスケジューラや後述のグループポリシーで設定する方法は、スタートアップフォルダーに登録する方法などに比べて手間がかかるため、あまり利用する機会はないですが、管理者権限が必要なアプリやプログラムを、ユーザーアカウント制御画面を表示させずにサインイン時に自動起動させたいときには便利です。

グループポリシーで設定

グループポリシーで設定するときは「ローカルグループポリシーエディター」を起動し、画面左側のメニューで「ユーザーの構成」>「スクリプト(ログオン/ログオフ)」を選択して、画面右側で「ログオン」をダブルクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「ログオンのプロパティ」画面が表示されるので「追加」をクリックして、ユーザーがサインインしたときに実行させたいプログラムを指定して「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「ログオンのプロパティ」画面に戻ったら「OK」をクリックします。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

最後にポリシーを適用するために、コマンドプロンプトを起動して「gpupdate」を実行します。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

以上で設定完了です。

ログオンスクリプトとして設定したプログラムは管理者権限で実行されるため、おもにバッチファイルやPowerShellスクリプトを実行するときに利用し、一般的なアプリを自動起動させる用途には向かないでしょう。

また、一般的な方法で設定したログオンスクリプトは、そのコンピューターにサインインするすべてのユーザーで実行されるため、特定のユーザーでのみ実行するといった用途には向かないでしょう。

スタートアップ機能の便利な点

スタートアップに登録したプログラムは、Windowsの「設定」アプリの「アプリ」>「スタートアップ」や、タスクマネージャーの「スタートアップ」タブに一覧表示され、これらの画面から有効/無効を簡単に切り替えることができる点です。

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

Windowsの「設定」アプリの画面

Windowsの起動時やサインイン時にプログラムを自動実行させる方法。

「タスクマネージャー」の画面