@tooljpさんをフォロー

OS起動時/ユーザログオン時のプログラム自動実行に関して (Windows 7)

スタートアップ(startup)フォルダ、レジストリ、グループポリシーなどを使用し、OS起動時やユーザログオン時にプログラムを自動実行させる設定に関して説明します。

(1)スタートアップフォルダ

スタートアップフォルダにプログラムへのショートカットを保存すれば、ユーザログオン時に自動的にプログラムが実行されます。スタートアップフォルダは以下の2種類があります。

この2種類のスタートアップが合計されて、メニューの[すべてのプログラム][スタートアップ] に表示されます。

【それぞれのユーザ用】
C:\ユーザー\<ユーザ名>\AppData\Roaming\Microsoft\Windows\スタート メニュー\Programs\スタートアップ
(英語表示の場合:C:\Users\<ユーザ名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)

【すべてのユーザ共通】
C:\ProgramData\Microsoft\Windows\スタート メニュー\Programs\スタートアップ
(英語表示の場合:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup)

(*)ProgramData は隠しフォルダです。エクスプローラから[ツール][フォルダオプション]を選択し「表示」タブで「隠しファイル、隠しフォルダー、および隠しドライブを表示する」をチェックすると表示されます。

それぞれのフォルダにはアプリケーションへのショートカットが保存されています。下の例は【それぞれのユーザ用】のスタートアップのサンプルです。以下の例では常駐秀丸がユーザログオン時に自動実行されます。

(2)msconfig ツールによる設定

スタートアップは msconfig ツールから実行することも可能です。[ファイル名を指定して実行] から msconfig ツールを起動し 「スタートアップ」タグ を選択します。「スタートアップ項目」のチェックをオフにすることにより自動起動を無効にすることができます。

(3)レジストリでの設定

スタートアップフォルダへのショートカット保存以外にもレジストリで自動起動を設定することが可能です。どのユーザがログオンした場合でも実行されます。
(*)スタートアップに登録されたプログラムもレジストリで設定したプログラムもほぼ同じタイミング(ログオン後のデスクトップ表示後)で実行されます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

(注)以下のレジストリに値を設定すると管理者でログオンした場合に一度だけ実行されます。二度目は実行されません。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

(4)グループポリシーで設定

グループポリシーのスタートアップに設定するとOS起動時に設定したプログラムが実行されます。ログオンしないでもOS起動時に実行される点に注意してください。
(*1)プログラムはOS起動時に各サービス起動時に平行して実行されます。
(*2)誰もログオンしていない状態で実行されます。実行権限は nt authority\system となります。

【手順】
 (1)グループポリシーエディタを起動します。(参考:グループポリシーエディタの起動方法
 (2)「コンピュータの管理」「Windowsの設定」「スクリプト(スタートアップ/シャットダウン)」「スタートアップ」を選択します。

グループポリシーでスタートアップを設定

 (3)右フレームの「スタートアップ」をダブルクリックします。
 (4)[追加]を選択して、OS起動時に実行したいプログラムを指定します。以下の例ではOS起動時に c:\temp\test.bat が起動されます。

グループポリシーでスタートアップにプログラムを指定

(5)まとめ

自動起動をまとめると以下のとおりとなります。

自動起動の設定場所 メニューの
[すべてのプログラム][スタートアップ]
に表示
msconfig での設定 設定場所 実行タイミング
スタートアップフォルダ(それぞれのユーザ用) 表示される 設定可能 C:\ユーザー\<ユーザ名>\AppData\Roaming\Microsoft\Windows\スタート メニュー\Programs\スタートアップ 対応するユーザのログオン時
スタートアップフォルダ(すべてのユーザ共通) 表示される 設定可能 C:\ProgramData\Microsoft\Windows\スタート メニュー\Programs\スタートアップ ユーザログオン時(すべてのユーザ)
レジストリ 表示されない 設定可能 【レジストリ】HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ユーザログオン時(すべてのユーザ)
グループポリシー 表示されない 設定不可 【グループポリシー】「コンピュータの管理」「Windowsの設定」「スクリプト(スタートアップ/シャットダウン)」「スタートアップ」 OS起動時(ログオン無しでも実行)


[Windows 技術ドキュメント トップ]
[FAQ CENTER トップ]