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

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

Windowsでは、ユーザーがサインイン(ログオン)したときに、特定のプログラム(アプリ)を自動的に実行させる方法として、スタートアップ機能を利用した方法や、タスクスケジューラを使った方法、グループポリシーを使った方法があります。

    そこでここではWindows 10を例に、上に挙げたそれぞれの方法で、ユーザーがサインインした時に特定のプログラムを自動実行させる方法を紹介します。

    スタートアップ機能を使った方法

    Windowsのスタートアップ機能を使って設定する場合は、実行させたいプログラムまたはプログラムのショートカットをスタートアップフォルダーに配置する方法と、レジストリで設定する方法があります。

    スターアップフォルダーにプログラムを配置する

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

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

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

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

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

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

    レジストリで設定する

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

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

    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の「設定」アプリの「アプリ」>「スタートアップ」や、タスクマネージャーの「スタートアップ」タブに一覧表示され、これらの画面から有効/無効を簡単に切り替えることができる点です。

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

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

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

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

    タスクスケジューラを使った方法

    タスクスケジューラでプログラムをサインイン時に自動実行させる手順は、次のとおりです。

    まず、スタートメニューのプログラム一覧などから「タスクスケジューラ」を起動します。

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

    タスクスケジューラを起動したら、画面右側のメニューから「タスクの作成」をクリックします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    以上で、設定完了です。

    グループポリシーを使った方法

    グループポリシーで、プログラムをサインイン時に自動起動させるときはログオンスクリプトを設定します。

    手順は、次のとおりです。

    Memo

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

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

    検索ボックスに「グループ」と入力するなどして「ローカルグループポリシーエディター(gpedit.msc)」を起動します。

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

    「ローカルグループポリシーエディター」画面が表示されたら、左側のメニューで「ユーザーの構成」>「スクリプト(ログオン/ログオフ)」を選択して、画面右側で「ログオン」をダブルクリックします。

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

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

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

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

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

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

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

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

    以上で設定完了です。

    あとがき

    タスクスケジューラやグループポリシーでプログラムをサインイン時に自動起動させる方法は、スタートアップ機能を使った方法に比べて手間がかかります。

    そのため、あまり利用する機会はないですが、管理者権限が必要なアプリやスクリプトを、ユーザーアカウント制御画面を表示させずにサインイン時に自動起動させたいときには便利です。