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