※購入先、ダウンロードへのリンクにはアフィリエイトタグが含まれており、それらの購入や会員の成約、ダウンロードなどからの収益化を行う場合があります。

タスクマネージャーで優先度を変更する|常に維持する方法(固定化)

 

※本コンテンツは「記事制作ポリシー」に基づき、正確かつ信頼性の高い情報提供を心がけております。万が一、内容に誤りや誤解を招く表現がございましたら、お手数ですが「お問い合わせ」よりご一報ください。速やかに確認・修正いたします。

この記事のまとめ

 

優先度の基礎(安全運用のための前提)

  • 優先度レベル:Low / BelowNormal / Normal / AboveNormal / High / Realtime

  • 目安:

    • AboveNormal…少し優先したい常用アプリ(編集ソフト等)

    • High…重い処理・ゲーム・ビルドなどの“本気モード”

    • Realtime…基本使わない(システムが重く感じたり入力遅延の原因)

  • 優先度を上げれば必ず速くなるわけではありません。CPU負荷の“順番”が変わるだけで、I/O待ちやGPU起因の遅さは解決しません。


タスクマネージャーで優先度を変更する(5パターン)

方法①:ショートカットで“常に高”起動(最速・クリック派)

  1. デスクトップを右クリック → 新規作成ショートカット

  2. 「項目の場所」に次を入力(例:Highで起動)
    powershell.exe -Command “Start-Process ‘C:\Path\To\App.exe’ -Priority High”

    • 他のレベル:Low / BelowNormal / Normal / AboveNormal / High / Realtime

  3. 名前を付けて保存(例:App(高優先度))。

  4. 必要ならショートカットのプロパティ → 詳細設定 → 管理者として実行にチェック。

    • UACが出る環境や、アプリが管理者権限を要求する場合は有効に。

ポイント

  • アプリのパスに空白がある場合は、必ず '" で囲む

  • パスが不明なら、対象アプリのショートカット→リンク先を確認。


方法②:コマンド(手動実行・検証に便利)

コマンドプロンプト(cmd.exe)

start “” /High “C:\Path\To\App.exe”

スイッチ:/Low /BelowNormal /Normal /AboveNormal /High /Realtime

PowerShell

Start-Process “C:\Path\To\App.exe” -Priority High

使いどころ:まずは動作確認。うまくいけばショートカットやスケジューラに発展させる。


方法③:タスク スケジューラでログオン時に自動起動(最も確実)

「サインインのたびに自動でHighで立ち上げる」=実質的な固定化

  1. タスク スケジューラを起動

    • (スタートメニューで「タスク スケジューラ」と検索)

  2. 右側の「タスクの作成」をクリック

  3. 全般タブ

    • 名前:App_優先度High起動

    • (必要に応じて)「最上位の特権で実行する」にチェック

  4. トリガータブ → 新規

    • 「ログオン時」(または「コンピューターの起動時」)を選択

  5. 操作タブ → 新規

    • プログラム/スクリプトpowershell.exe

    • 引数の追加
      -WindowStyle Hidden -Command “Start-Process ‘C:\Path\To\App.exe’ -Priority High”

  6. 条件/設定タブは任意(バッテリー時は実行しない等を調整)

  7. OKで保存 → ログオフ/再サインインで動作確認。

メリット:UACや権限を含め、再現性が高い
コツ:アプリが別ランチャー経由で起動する場合は、後述の「起動後に書き換え」スクリプトと併用。


方法④:スタートアップに“高優先度バッチ”を置く(簡単・軽量)

  1. メモ帳で以下を保存(例:AppHigh.bat
    @echo off
    start “” /High “C:\Path\To\App.exe”

  2. 置き場所:
    C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

  3. サインインで自動実行。

注意:管理者権限が必要なアプリだとUACが出る場合あり。
安定化の工夫:ランチャー→本体アプリの起動に時間差がある場合は、バッチにtimeout /t 5等の待機を入れる。


方法⑤:起動後に優先度を書き換える(プロセス名を監視)

ランチャーから本体が立ち上がる等、「どの実行ファイルが最終プロセスか分かりにくい」ケースに有効。

PowerShellスクリプト例(対象を“常にHigh”)

# Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # 必要なら初回のみ(自己責任で)
$targets = “blender”,”afterfx”,”davinciresolve” # ←拡張子なしのプロセス名
Start-Sleep -Seconds 10 # 起動が落ち着くまで待機(必要に応じて調整)
foreach ($t in $targets) {
Get-Process $t -ErrorAction SilentlyContinue | ForEach-Object {
try { $_.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::High } catch {}
}
}
  • この.ps1タスク スケジューラで「ログオン時」に実行すると、対象が起動していれば後から上書きできます。

  • ランチャー→本体の遅延に合わせて*Start-Sleepを適宜調整。


実例テンプレ

例1:Adobe Premiere Proを“AboveNormal”でショートカット起動

powershell.exe -Command “Start-Process ‘C:\Program Files\Adobe\Adobe Premiere Pro\Adobe Premiere Pro.exe’ -Priority AboveNormal”

例2:ゲームを“High”+引数付きで起動(バッチ)

@echo off
start “” /High “D:\Games\GameTitle\Game.exe” -fullscreen -novsync

例3:複数ソフトをまとめて“Low”に落とす(マルチタスク安定化)

$backgrounds = “onedrive”,”teams”,”slack”
foreach ($p in $backgrounds) {
Get-Process $p -ErrorAction SilentlyContinue | ForEach-Object {
try { $_.PriorityClass = ‘BelowNormal’ } catch {}
}
}

CPUアフィニティとの違い(混同しがちポイント)

  • 優先度:CPUスケジューリング上の“順番の強さ”。

  • CPUアフィニティ:どのCPUコアを使うかの割当。

  • まずは優先度だけで十分なことが多いです。アフィニティ調整は効果検証が必須。

  • PowerShellのStart-Process単体ではアフィニティ直接指定は不可のため、WMI/APIや外部ツールを使う上級テクになります。

なぜ優先度は勝手に戻るのか

Windowsのスケジューラは、新しく起動したプロセスに既定の優先度(通常はNormal)を与えます。
タスクマネージャーで変更した設定はそのプロセスの“今この瞬間”にのみ有効
で、プロセスが終了して次に起動したときは再び既定に戻ります。
したがって“固定化”には起動経路そのものを工夫する必要があります。

うまくいかないときのチェックリスト

  • UAC/権限:管理者権限が必要?(タスクの「最上位の特権で実行」をON)

  • パスの引用符:スペースを含むパスは '...' または "..." で囲む。

  • 実行ポリシー:PowerShellがスクリプトを拒否する →

    • Get-ExecutionPolicy で確認

    • 必要なら自己責任で Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

  • セキュリティ/アンチチート:一部ゲームや企業PCでは外部からのプロセス操作を禁止。規約やポリシーに従う。

  • Realtimeは非推奨:キーボード/マウス遅延やOS全体のもたつきが起きうる。

  • プロセス名の違い:表示名と実行ファイル名が異なる場合あり(Get-Processで正確な名前を確認)。


FAQ

Q1:タスクマネージャーだけで永続設定できませんか?
A:できません。再起動・再実行のたびに既定へ戻る仕様です。起動経路(ショートカット/スケジューラ/スクリプト)の設計が必要です。

Q2:安全なおすすめレベルは?
A:まずは AboveNormal、次に HighRealtimeは基本NGです。

Q3:すべての常駐を一括で下げたい
A:PowerShellで対象名の配列を回すのが現実的。影響範囲が広いので段階的に適用を。

Q4:ランチャー経由のアプリで効かない
A:ランチャーではなく本体プロセスに対して適用する必要があります。方法⑤(起動後の書き換え)を併用してください。