Windowsコマンドプロンプトでスタートアップアプリの有効/無効を設定する方法

Windowsのスタートアップアプリは、設定やタスクマネージャーで有効・無効を切り替える方法が基本です。コマンドプロンプトから設定画面を開いたり、Runキーを調べたりできます。ただし、Runの値を追加・削除することと、タスクマネージャーの有効・無効を切り替えることは同じ操作ではありません。

ここでは主にユーザーのサインイン時に起動するアプリを扱います。OS起動時のサービス、タスクスケジューラ、組織のポリシー等は別の仕組みです。セキュリティ製品、バックアップ、管理ツールを、名前が分からないという理由だけで停止しないでください。

目次

コマンドプロンプトから設定画面を開く

スタートでcmdを検索し、通常のコマンドプロンプトを開きます。次はWindowsの「設定」→「アプリ」→「スタートアップ」を開くコマンドで、それ自体はオン・オフを変更しません。

start "" ms-settings:startupapps

対象アプリを確認してオン・オフを切り替えます。タスクマネージャーの「スタートアップ アプリ」でも確認できます。オフにしてもアプリをアンインストールしたり、現在起動しているプロセスを終了したりする操作ではありません。元の状態を記録して一つずつ変更し、次回サインイン後に確認してください。

一覧を調べる:WMICではなくPowerShellのCIMを使う

旧記事のwmic startupコマンドは、現在のWindowsでWMICが利用できない場合があります。この照会のために古いWMICを追加するのではなく、PowerShellからCIMを利用します。次はコマンドプロンプトに入力する例です。

powershell.exe -NoProfile -Command "Get-CimInstance Win32_StartupCommand | Select-Object Name,Command,Location,User | Format-List"

PowerShellで直接実行する場合は次の形です。

Get-CimInstance Win32_StartupCommand |
    Select-Object Name, Command, Location, User |
    Format-List

Nameは名前、Commandは起動コマンド、Locationは登録場所、Userは関連ユーザーです。これは登録情報の照会で、有効・無効の確定や実際の起動成功を示す一覧ではありません。サービスやあらゆるタスクを網羅するものでもありません。アクセス拒否や取得範囲の制限があれば管理担当者に確認し、空の結果だけで登録がないと決めつけないでください。

スタートアップフォルダーを使う

explorer.exe shell:startup

現在のユーザーのスタートアップフォルダーを開きます。追加する場合は、信頼できるインストール済みアプリのショートカットを配置します。プログラム本体や重要なデータを移動する必要はありません。実行先・引数・作業フォルダーを確認し、同じアプリがすでに別の方法で登録されていないかも調べます。

explorer.exe "shell:common startup"

こちらは全ユーザー向けです。変更は他のユーザーにも影響し、管理者権限が必要になる場合があります。自分だけの設定ならshell:startupを使います。無効化はまず設定画面を使い、フォルダー内の自分で追加したショートカットを外す場合は、元に戻せるよう元の場所・リンク先を記録して別フォルダーに保管します。アプリ本体は削除しません。

Runキーを読み取り専用で確認する

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"

HKCUは実行しているユーザー、HKLMはコンピューター側の登録です。別ユーザーの資格情報で実行すると、想定と異なるHKCUを見ていることがあります。登録場所や32/64ビットのビューの違いもあるため、一つのキーにないだけでスタートアップ全体に存在しないとは言えません。

Runは通常サインインごと、RunOnceは一度の実行向けです。起動順序やログオン直後の即時実行は保証されません。登録しても、無効化状態、権限、アプリ側の条件などで起動しない場合があります。

上級者向け:自分で管理するRun値を追加・削除する

以下は現在のユーザーのRunに、独自に管理する一つの値を登録する例です。設定画面の「無効」を解除する万能コマンドではありません。既存ソフトの値や組織管理の値を上書きせず、アプリ自身の自動起動設定を優先してください。実際のWindows環境での実行テストは行っていません。

先に同名値の有無を確認します。存在した場合は作業を止め、内容・型・所有元を調べてください。「見つからない」とアクセス拒否等のエラーは区別します。変更前の保全としてRunキーをエクスポートする例も示します。バックアップ先は自分が管理する書き込み可能なフォルダーへ置き換えてください。

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ExampleApp"
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" "C:\Work\Run-before.reg"

エクスポートに失敗したまま進まないでください。バックアップは既存の内容を保全するためのもので、インポートすれば新しく追加した値も自動的に消えるわけではありません。全体の復元は他の値にも影響し得るので、対象値の復元を管理者と確認します。

以下はcmd.exe用です。ExampleAppは未使用の値名、実行ファイルは実在する信頼済みアプリへ置き換えます。スペースを含む実行パスの引用符をデータの中に保存するため、例ではバックスラッシュ付き引用符を使用しています。/fを付けず、既存値の上書きを無条件にしません。

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ExampleApp" /t REG_SZ /d "\"C:\Program Files\Example\App.exe\""
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ExampleApp"

照会した値のデータが、引用符で囲まれた正しい実行ファイルパスになっているか確認します。説明用パスのまま実行しないでください。コマンドの終了コードや表示が成功でも、次回サインインでアプリが起動するかは別に確認が必要です。

この例で新しく追加した値だけを取り除く場合は次を使います。確認メッセージを読み、名前を再確認します。/vを省略してRunキー全体を削除しないでください。

reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ExampleApp"

削除は登録そのものを取り除く操作で、元に戻すには記録した値を正確に再作成します。既存値のバックアップや復元手順が不明なら、削除ではなく設定画面での切り替えを使ってください。

一括自動化の前に確認すること

対象ユーザー、登録元、変更前のデータ、復旧方法が分からないまま複数の値を一括追加・削除しないでください。管理環境では承認された配布・ポリシー管理の方法を使い、少数のテスト対象で確認します。

外部ホストへのping一回の成功・失敗は、インターネットや対象アプリの接続可否を保証しません。それを条件にスタートアップ登録を削除する処理は避けます。また、Runを書き換えても、その場で対象アプリが起動・停止するわけではありません。

設定したのに起動する・起動しない場合

同じアプリがRun、スタートアップフォルダー、アプリ独自設定、タスク等に重複登録されていないか確認します。無効にしたのに起動する場合は、アプリの更新や組織のポリシーが設定を戻していないかも確認してください。

起動しない場合は実行ファイルの存在、引用符、引数、実行ユーザー、必要なネットワークや作業フォルダーを確認します。UACやセキュリティ機能を無効にして回避するのではなく、アプリの公式な起動方法に従います。サインアウト前には作業を保存し、再サインイン後の結果と元の状態を比較します。

公式資料

Microsoft:スタートアップアプリの構成/Win32_StartupCommand/Run・RunOnce/reg add/reg delete/reg export。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次