PowerShellは、Windowsの管理や自動化に欠かせないツールです。その中でも Get-WmiObject Win32_OperatingSystem
は、OSの詳細情報を取得するための強力なコマンドです。本記事では、このコマンドの使い方を詳しく解説し、取得できる情報の一覧や、具体的な活用例について紹介します。PowerShellを使ってシステム情報を効率的に取得・管理したい方は、ぜひ最後までご覧ください。
Get-WmiObject Win32_OperatingSystem とは?
WMI(Windows Management Instrumentation)とは
WMI(Windows Management Instrumentation)は、Windowsのハードウェアやソフトウェアに関する情報を取得・管理できる仕組みです。WMIを利用することで、システムの状態を確認したり、設定を変更したりすることが可能になります。
Get-WmiObject コマンドの役割
Get-WmiObject
は、WMIを利用してWindowsのさまざまな情報を取得するためのPowerShellコマンドレットです。特定のクラスを指定することで、必要な情報を取得できます。
Win32_OperatingSystem クラスとは
Win32_OperatingSystem
クラスは、Windows OSに関する情報を取得するためのWMIクラスです。これを Get-WmiObject
と組み合わせることで、OSの詳細な情報を取得できます。
Get-WmiObject Win32_OperatingSystem の基本的な使い方
PowerShellのコンソールを開き、以下のコマンドを実行することでOSの詳細情報を取得できます。
Get-WmiObject Win32_OperatingSystem
このコマンドを実行すると、OSに関するさまざまな情報が一覧で表示されます。
取得できるOS情報の一覧
Get-WmiObject Win32_OperatingSystem
を実行すると、以下のような情報を取得できます。
プロパティ名 | 説明 |
---|---|
Caption | OSの名称(例:Windows 10 Pro) |
Version | OSのバージョン(例:10.0.19044) |
BuildNumber | ビルド番号 |
Manufacturer | OSの開発元(例:Microsoft Corporation) |
OSArchitecture | OSのアーキテクチャ(32bit / 64bit) |
TotalVisibleMemorySize | 利用可能な物理メモリ(KB単位) |
FreePhysicalMemory | 使用可能なメモリ容量 |
LastBootUpTime | 最後にPCを起動した時刻 |
InstallDate | OSのインストール日時 |
SystemDirectory | システムディレクトリのパス |
SerialNumber | OSのシリアル番号 |
これらの情報を活用することで、システム管理の効率化やOSの状態チェックが可能になります。
取得した情報を整理して表示する方法
デフォルトの出力では情報が多すぎることがあります。必要な情報だけを取得するには、 Select-Object
を活用します。
例:OSの名前とバージョンだけ取得する
Get-WmiObject Win32_OperatingSystem | Select-Object Caption, Version
例:メモリ情報を見やすく表示する
Get-WmiObject Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory
このように Select-Object
を使うことで、必要な情報を絞り込んで表示できます。
OSの起動時間を取得する
PCが最後に再起動された日時を確認するには、 LastBootUpTime
を利用します。
(Get-WmiObject Win32_OperatingSystem).LastBootUpTime
この出力結果は「2025-03-03T12:34:56.000000+0900」といった形式になります。
見やすい形式に変換するには、以下のように Get-Date
を使います。
(Get-WmiObject Win32_OperatingSystem).ConvertToDateTime((Get-WmiObject Win32_OperatingSystem).LastBootUpTime)
OSの稼働時間を取得する
PCの稼働時間(システムの稼働時間)を取得するには、 LocalDateTime
から LastBootUpTime
を引き算することで計算できます。
$os = Get-WmiObject Win32_OperatingSystem
$uptime = (Get-Date) - $os.ConvertToDateTime($os.LastBootUpTime)
$uptime
このスクリプトを実行すると、OSが起動してからの経過時間が表示されます。
PowerShellスクリプトを活用した自動化
定期的にOS情報を取得してログとして保存するスクリプトを作成できます。
$os = Get-WmiObject Win32_OperatingSystem
$log = "OS Name: " + $os.Caption + "`nVersion: " + $os.Version + "`nLast Boot Time: " + $os.ConvertToDateTime($os.LastBootUpTime)
$log | Out-File -FilePath "C:\OS_Log.txt"
このスクリプトを実行すると、OSの情報が C:\OS_Log.txt
に保存されます。定期的に実行することで、OSの状態を記録できます。
Get-WmiObject の代替 Get-CimInstance
Get-WmiObject
は古いコマンドであり、PowerShellの新しいバージョンでは Get-CimInstance
が推奨されています。
以下のように書き換えると、より高速かつ効率的に情報を取得できます。
Get-CimInstance Win32_OperatingSystem
特にリモートコンピュータへのアクセスを考える場合は、Get-CimInstance
の方が柔軟に対応できます。
まとめ
Get-WmiObject Win32_OperatingSystem
は、WindowsのOS情報を取得するための便利なPowerShellコマンドです。
- OS名、バージョン、メモリ情報、起動時間など多くの情報を取得可能
Select-Object
を使って必要な情報だけを取得できる- スクリプトを組み合わせることでログを作成し、システム管理を効率化できる
- PowerShellの新しいバージョンでは
Get-CimInstance
への移行が推奨されている
PowerShellを活用して、効率的にシステム情報を取得・管理してみてください。