✅【2025年最新版】DisplaySwitch.exeが効かない?Windows 11の画面表示切り替え完全ハンズオンガイド【数値引数・回避策も解説】
🔰 DisplaySwitch.exeとは?
Windowsに標準で搭載されている DisplaySwitch.exe
は、ディスプレイ表示モード(複製・拡張・セカンドスクリーン等)を切り替えるコマンドツールです。従来は次のように使われていました:
DisplaySwitch.exe /internal
DisplaySwitch.exe /extend
これにより「Win + P」のような画面切替がコマンドラインやバッチ・マクロボタンで自動化可能でした。
⚠ 2022年以降の変更点:Windows 11 22H2で挙動が変化
❌ /internal
などの引数が無効に!
Microsoft Answersや開発者コミュニティで報告された通り、Windows 11 バージョン22H2(ビルド 22621.521)以降では /internal
などの引数が無視され、代わりに「プロジェクションUI(Win + Pの画面)」が表示されるだけになります。
✅ 対応策まとめ(2025年時点)
方法 | 状態 | 備考 |
---|---|---|
DisplaySwitch.exe /internal などの引数 | ❌ 無効(22H2以降) | UIが表示されるだけ |
DisplaySwitch.exe 1 ~4 の数値引数 | ⚠ 一部動作する | 正式ドキュメントなし・将来不明 |
Windows 10版の DisplaySwitch.exe に差し替え | ✅ 有効 | 信頼済みの旧バイナリを使う必要あり |
PowerShellスクリプトによる切り替え | ✅ 応用向け | 状態管理可能 |
🧭 数値引数による回避策(現在有効な環境もあり)
一部のWindows 11環境では、数値引数での呼び出しが機能します。
DisplaySwitch.exe 1 ← 内部ディスプレイのみ(/internal)
DisplaySwitch.exe 2 ← 複製(/clone)
DisplaySwitch.exe 3 ← 拡張(/extend)
DisplaySwitch.exe 4 ← 外部ディスプレイのみ(/external)
💡 注意点:
DisplaySwitch 4
のように拡張子なしでも動作する環境あり- 数値引数の前にスペースを空ける必要あり(
DisplaySwitch.exe 4
)
🛠 実践:DisplaySwitchでディスプレイを切り替える手順
ステップ①:バッチファイルを作成
例:外部ディスプレイのみに切り替える
@echo off
DisplaySwitch.exe 4
他のモード:
モード | コマンド |
---|---|
PC画面のみ | DisplaySwitch.exe 1 |
複製 | DisplaySwitch.exe 2 |
拡張 | DisplaySwitch.exe 3 |
外部のみ | DisplaySwitch.exe 4 |
ステップ②:ショートカットを作成してホットキーに割当て
- 作成した
.bat
ファイルを右クリック → ショートカット作成 - ショートカットを右クリック → 「プロパティ」→「ショートカットキー」に
Ctrl + Alt + E
などを入力 - 「OK」で保存
ステップ③:Stream Deckやマクロデバイスに割り当て(任意)
- Stream Deck → 「アプリ起動」機能で
.bat
を選択 - Razer Synapse / Logitech G HUB → キーにバッチファイルを登録
✅ 応用編:状態記録付きPowerShell切り替えスクリプト
$configFile = "$env:USERPROFILE\Documents\display_mode.txt"
$internal = 1
$external = 4
$last = Get-Content $configFile -ErrorAction SilentlyContinue
$next = if ($last -eq $internal) { $external } else { $internal }
Start-Process "DisplaySwitch.exe" -ArgumentList $next
$next | Out-File $configFile -Force
💡 このスクリプトを使えば、前回の状態に応じて自動で切り替え先を判断できます。
🔄 代替策:Windows 10版 DisplaySwitch.exe を使う
Windows 11で動かなくなった /internal
などの引数を使いたい場合は、以下の方法が有効です。
手順:
- Windows 10 環境から
DisplaySwitch.exe
をコピー - 任意のフォルダ(例:
D:\Tools\DisplaySwitch_Win10.exe
)に配置 - バッチやAutoHotkeyでそのパスを指定:
Run, "D:\Tools\DisplaySwitch_Win10.exe" /extend
🔗 安全な配布先(Redditより共有)
SHA256付き署名あり → ダウンロードリンク
⚠ よくある間違い・注意点
ケース | 説明 |
---|---|
/1 , /2 のような引数 | ❌ 無効(誤解されがち) |
ファイル名に拡張子がない | .bat または .ps1 で保存が必須 |
DisplaySwitch.exe の場所 | C:\Windows\System32 にある必要あり |
ショートカットで動作しない | 管理者権限 or 相対パス指定が必要な場合あり |
🎁 おまけ:メニュー式バッチファイルで切り替え
@echo off
echo ==== ディスプレイ出力切替 ====
echo [1] PC画面のみ
echo [2] 複製
echo [3] 拡張
echo [4] セカンドスクリーンのみ
set /p input="番号を選んでください: "
DisplaySwitch.exe %input%
✅ まとめ:現状のDisplaySwitch.exe事情
方法 | 対応状況 | 推奨度 |
---|---|---|
/internal 等の旧引数(22H2以降) | ❌ 無効 | × |
数値引数(1~4) | ⚠ 環境により有効 | △ |
Windows 10版 .exe に差替え | ✅ 安定動作 | ◎ |
PowerShell + 状態記録 | ✅ 自動切替可能 | ◎ |
✍ 締めの一言
Windows 11 での DisplaySwitch.exe
の仕様変更はやや厄介ですが、回避策を使えば、従来と同じように「一発ディスプレイ切替」が可能です。
- 業務効率化
- プレゼン・配信時の画面切替
- マクロ自動化
に最適です。
上級者向けにはPowerShellでの構成管理、初心者向けにはバッチ+ショートカットでの運用がベストです。
コメント