PowerShellを使用したシステムのディスプレイ設定の変更方法

PowerShellからディスプレイ設定を扱う場合は、Windows 11とWindows Server Coreを区別します。Get-DisplayResolution/Set-DisplayResolutionはServer Core用で、一般的なWindows 11に標準搭載されている解像度変更コマンドではありません。Windows 11では設定画面を開く方法、モニター情報を調べる方法、表示モードの切り替えを分けて説明します。

目次

Windows 11:設定画面から解像度・向きを変更

PowerShellで次を実行すると「システム」→「ディスプレイ」を開けます。設定画面を開くだけで解像度は自動変更されません。

Start-Process 'ms-settings:display'

複数画面がある場合は「識別」で番号を確認し、変更対象の画面を選びます。「ディスプレイの解像度」や「ディスプレイの向き」を選び、正常に表示できることを確認して変更を保持します。表示可能な項目・解像度は機器やドライバーによって異なります。

Server Core:Get/Set-DisplayResolutionの例

次はWindows Server CoreのServerCoreモジュールを対象とする例です。Windows 11で「認識されません」と表示されても、管理者として開き直すだけで使えるようにはなりません。

Get-DisplayResolution
Set-DisplayResolution -Width 1920 -Height 1080

設定前の解像度と復旧方法を記録し、機器が対応する値だけを指定します。-Forceは確認を省くため、初回の動作確認では使わず、表示の確認に応答してください。Get-DisplayResolutionの出力を幅・高さのプロパティを持つオブジェクトと決めつけないでください。

縦向き変更や完全自動化が必要な場合

一般的なWindows 11の解像度・向きを細かく自動制御するには、対応するWindows APIや検証済みの管理ツールが別途必要です。以前掲載していた出所を確認できないDisplaySettingsコマンドと、実行できないAPI省略コードは手順として利用しないでください。まず標準の設定画面で希望する構成が利用できることを確認します。

複数ディスプレイ設定の管理

複数のディスプレイを使用する環境は現代の職場では一般的であり、効率的な作業スペースの構成には、それぞれのディスプレイの設定を適切に管理することが不可欠です。PowerShellを使った複数ディスプレイ設定の管理方法を紹介します。

複数ディスプレイの識別

まず、複数のディスプレイを正確に識別することから始めます。PowerShellでは、Get-CimInstance コマンドレットを使用して、接続されているディスプレイの情報を取得できます。

Get-CimInstance -Namespace root\wmi -ClassName WmiMonitorID | ForEach-Object {
    [pscustomobject]@{
        InstanceName = $_.InstanceName
        Name = -join ($_.UserFriendlyName | Where-Object { $_ -ne 0 } | ForEach-Object { [char]$_ })
        Serial = -join ($_.SerialNumberID | Where-Object { $_ -ne 0 } | ForEach-Object { [char]$_ })
    }
}

モニターが公開している名称・シリアル番号を表示する読み取り例です。機種や仮想・リモート環境によって空欄や取得できない項目があり、Windows設定画面の番号との対応を保証するものではありません。

ディスプレイの配置設定

複数のディスプレイが識別できたら、次にそれらの配置を設定します。DisplaySwitch.exeは拡張・複製などの表示モードを切り替えるものです。画面の左右上下の位置や座標を指定するコマンドではありません。配置は設定画面で画面の図をドラッグして調整します。

# ディスプレイを拡張モードで設定
Start-Process DisplaySwitch.exe -ArgumentList "/extend"

このコマンドは、接続されているディスプレイを拡張モードで使用するようにシステムに指示します。同様に、/clone、/internal、/external オプションを使用することで、ディスプレイのモードを変更できます。

解像度と向きの個別設定

Windows 11では対象画面を選択して設定します。Server CoreのSet-DisplayResolutionを各モニター指定の代わりには使用できません。アプリ起動時に自動変更する場合も、対象画面の識別・変更結果・終了時の復旧を個別に設計する必要があります。以前のPhotoshop連動サンプルはWindows 11向けの実行手順として利用しないでください。

トラブルシューティング:変更できない場合

コマンドが認識されない場合は対象OSとモジュールを確認します。希望の解像度が表示されない場合は、モニター・ケーブル・変換アダプター・GPUドライバーの対応条件を確認してください。表示モードの切り替えと、個別画面の解像度や配置の設定は別の操作です。遠隔操作中は表示構成が異なることがあるため、現地で戻せる手段を確保してから変更します。

まとめ

Windows 11では設定画面の起動と表示モード切り替えを、Server Coreでは専用の解像度コマンドを使い分けます。機器やOSの違いを無視してスクリプトを適用せず、変更前後の表示と復旧手段を確認してください。

参考:Get-DisplayResolution、Set-DisplayResolution、Windows設定のURI。

この記事を書いた人

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

コメント

コメントする

目次