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

PowerShellでディスプレイ解像度を取得する方法

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


Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

PowerShellでLinuxのtail -fと同じリアルタイムログ監視を実現する方法

PowerShellでLinuxのtail -fと同じリアルタイムログ監視を実現する方法

システム管理者や開発者にとって、リアルタイムでログファイルを監視することは重要な作業の一つです。特にLinux環境では、tail -f コマンドを使ってログファイルの更新を監視することが一般的です。しかし、Windows環境では同じような機能を持つコマンドが標準では用意されていません。

そこで、本記事ではPowerShellを使って、Linuxのtail -fと同じようにテキストファイルの内容をリアルタイムで表示する方法について詳しく解説します。

tail -fとは?

Linuxのtail -f コマンドは、指定したファイルの末尾(最後の数行)を表示し、ファイルが更新されるたびにその内容をリアルタイムで追記表示する機能を持っています。システムのログ監視や、アプリケーションのデバッグ作業などで頻繁に使用されます。

例えば、以下のようなコマンドを実行すると、/var/log/syslogの内容を監視できます。

tail -f /var/log/syslog

Windows環境でも同様の機能を持つコマンドがあると、アプリケーションのログ監視やデバッグ作業が効率化されます。

PowerShellでtail -fを実現する方法

Windows PowerShellには、Get-Content コマンドレットを使用することで、テキストファイルをリアルタイムで監視することができます。

基本的なコマンド

以下のPowerShellコマンドを使用すると、Linuxのtail -fと同様に、ファイルの末尾を監視し、新しい行が追加されるたびに表示することができます。

Get-Content C:\path\to\file.log -Wait -Tail 10

オプションの説明

  • C:\path\to\file.log:監視したいログファイルのフルパス
  • -Wait:ファイルの更新を監視し、リアルタイムで表示
  • -Tail 10:ファイルの末尾10行を表示してから、その後の変更を監視(10の部分は任意の行数に変更可能)

このコマンドを実行すると、ファイルが更新されるたびに新しい行がPowerShellウィンドウに表示されます。

PowerShellスクリプトを使ったログ監視の自動化

より効率的にログ監視を行うために、PowerShellスクリプトを作成して実行することも可能です。

以下のスクリプトを使えば、特定のログファイルを監視しながら、リアルタイムで表示できます。

param (
    [string]$LogFile = "C:\path\to\file.log"
)

if (!(Test-Path $LogFile)) {
    Write-Host "ファイルが見つかりません: $LogFile"
    exit 1
}

Get-Content $LogFile -Wait -Tail 10

このスクリプトをtail.ps1として保存し、以下のように実行すると、任意のログファイルをリアルタイムで監視できます。

powershell -ExecutionPolicy Bypass -File tail.ps1 -LogFile "C:\path\to\file.log"

PowerShellでより高度なログ監視を行う方法

フィルタリング機能の追加

ログファイルが大量の情報を出力する場合、特定のキーワードを含む行のみを表示したいことがあります。その場合、Select-Stringを使うと便利です。

Get-Content C:\path\to\file.log -Wait | Select-String "ERROR"

このコマンドを実行すると、ログファイルの中から「ERROR」という文字列を含む行のみをリアルタイムで表示できます。

タイムスタンプ付きのログ表示

リアルタイムでログを監視する際に、タイムスタンプを追加すると、ログの発生時間が明確になり、解析がしやすくなります。

以下のスクリプトを使うと、各行の前にタイムスタンプを追加して表示できます。

Get-Content C:\path\to\file.log -Wait | ForEach-Object { "[$(Get-Date -Format "yyyy-MM-dd HH:mm:ss")] $_" }

これにより、ログの各行が以下のように表示されます。

[2025-04-02 12:30:45] サーバーが起動しました。
[2025-04-02 12:30:50] 接続が確立されました。

まとめ

PowerShellを使えば、Linuxのtail -fと同じように、Windows環境でもリアルタイムでログファイルを監視することが可能です。

主なポイント

  1. Get-Content -Wait -Tail を使用することでリアルタイムログ監視が可能
  2. PowerShellスクリプトを作成すれば、より柔軟なログ監視が実現できる
  3. Select-String を活用すると、特定のキーワードを含むログのみを表示可能
  4. タイムスタンプを追加することで、ログの発生時間を明確にできる

この方法を活用すれば、Windows環境でも効率的にログ監視ができるようになります。ぜひ実際に試してみてください!

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法