【初心者向け】PowerShellでモニター解像度を取得する方法を完全解説【複数ディスプレイOK】

Pocket

Windows環境でスクリプトを使ってモニターのスクリーンサイズ(画面の解像度)を取得したいとき、PowerShellが非常に便利です。特に、マルチディスプレイ環境や管理スクリプトの一環として、画面サイズの取得処理を自動化したい場合に役立ちます。

本記事では、PowerShellで現在のスクリーンサイズ(画面解像度)を取得する方法を、初心者の方でもわかりやすく丁寧に解説します。実行できるサンプルスクリプト付きで、コピーしてすぐ使えます!


✅ PowerShellとは?

PowerShellは、Windowsに標準搭載されている強力なシェルおよびスクリプト言語です。システム管理や自動化処理に適しており、GUI操作では面倒なタスクをコマンド1行で実現できます。


🎯 目的:スクリーンサイズ(解像度)を取得する

「今使っているPCの画面サイズがいくつか知りたい」
「複数モニターのサイズをスクリプトで取得したい」

そんなとき、PowerShellを使えば、以下のような簡単なコードで解決できます。


👨‍💻 単一画面(メインディスプレイ)のサイズを取得するスクリプト

Add-Type -AssemblyName System.Windows.Forms

$screen = [System.Windows.Forms.Screen]::PrimaryScreen
$width = $screen.Bounds.Width
$height = $screen.Bounds.Height

Write-Output "スクリーン解像度: ${width} x ${height}"

このスクリプトをPowerShellで実行することで、現在使用しているメインディスプレイの解像度(例:1680 x 1050)を簡単に取得できます。

単一画面(メインディスプレイ)のサイズを取得するスクリプト

🖥 複数モニターすべてのスクリーンサイズを取得する方法

複数ディスプレイを接続している環境では、以下のコードですべてのモニターの解像度をリスト形式で取得できます。

Add-Type -AssemblyName System.Windows.Forms

foreach ($screen in [System.Windows.Forms.Screen]::AllScreens) {
$deviceName = $screen.DeviceName
$width = $screen.Bounds.Width
$height = $screen.Bounds.Height
Write-Output "$deviceName : ${width} x ${height}"
}

出力例:

複数モニターすべてのスクリーンサイズを取得

💡 よくあるトラブルと対処法

$screen.Bounds がうまく取得できない

これは、環境によって System.Windows.Forms が正しくロードされていない場合に起こることがあります。その場合は、以下を確認してください:

  • Windows上で実行しているか(LinuxやmacOS上のPowerShell Coreでは非対応)
  • PowerShellのバージョンが5.1以上であるか(確認コマンド:$PSVersionTable.PSVersion

📝 実用例:スクリプトでログ収集や自動レポートに活用

取得した画面解像度をログファイルに出力したり、ユーザー環境の診断情報として活用するケースも多いです。

"$env:USERNAME : ${width} x ${height}" | Out-File "C:\temp\screenlog.txt" -Append

このようにログファイルに追記すれば、複数ユーザー環境の管理にも役立ちます。


🔚 まとめ:PowerShellで画面解像度を取得するのは超簡単!

PowerShellを使えば、GUIでは確認しづらいスクリーンサイズをわずか数行で取得可能です。特に複数ディスプレイを扱っているユーザーや、システム管理者にとっては非常に便利なスクリプトになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED