Windowsでは、パソコンの起動時に自動的に実行されるプログラムが複数存在します。
これらは利便性を高める一方で、起動が遅くなる原因や、意図しない常駐プログラムの温床になる場合もあります。
本記事では、PowerShellを使用して起動時に自動実行されるプログラムを確認する方法を、仕組みごとに丁寧に解説します。
目次
起動時に自動実行される主な仕組み
Windowsで自動起動が行われる代表的な場所は、以下のとおりです。
- スタートアップフォルダー
- レジストリ(Run / RunOnce)
- タスク スケジューラ
- サービス(常駐サービス)
PowerShellでは、これらを個別に正確に確認できます。
スタートアップフォルダーを確認する方法
スタートアップフォルダーに登録されたプログラムは、ログイン時に自動実行されます。
現在のユーザーのスタートアップフォルダー
|
1 |
Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" |

すべてのユーザー共通のスタートアップフォルダー
|
1 |
Get-ChildItem "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" |
ここにショートカットや実行ファイルが存在する場合、起動時に自動実行されます。
レジストリ(Runキー)を確認する方法
レジストリの Run キーに登録された項目も、ログイン時に自動実行されます。
現在のユーザー用 Run キー
|
1 |
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" |
全ユーザー共通の Run キー
|
1 |
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" |
表示される各値が、自動実行されるプログラムとその実行コマンドです。
タスク スケジューラの起動時タスクを確認する方法
「起動時」や「ログオン時」に実行されるタスクは、タスク スケジューラに登録されています。
有効な起動関連タスクを確認
|
1 2 3 4 5 |
Get-ScheduledTask | Where-Object { $_.Triggers.TriggerType -match 'AtStartup|AtLogOn' } | Select-Object TaskName, State |
この方法で、起動やログオンをトリガーに実行されるタスクを一覧で確認できます。
自動起動するサービスを確認する方法
Windowsサービスの中には、起動時に自動的に開始されるものがあります。
自動起動に設定されているサービス一覧
|
1 2 3 |
Get-Service | Where-Object {$_.StartType -eq 'Automatic'} | Select-Object Name, Status |
常駐型のプログラムがサービスとして動作している場合は、ここに表示されます。
PowerShellで確認する際の注意点
- 管理者権限が必要な情報も存在します
- 削除や無効化は、必ず対象を理解したうえで行ってください
- 不明な項目を無理に変更すると、正常起動しなくなる可能性があります
確認作業のみであれば、上記コマンドは安全に使用できます。
まとめ
PowerShellを使用すると、Windowsの起動時に自動実行されるプログラムを体系的かつ正確に確認できます。
- スタートアップフォルダー
- レジストリの Run キー
- タスク スケジューラ
- 自動起動サービス
これらを定期的に確認することで、起動トラブルや不要な常駐プログラムの早期発見につながります。
