29歳、離婚しました。

家事は元妻にまかせっきり。そんな生活力ゼロ男の離婚後の生活を綴ったブログです。著者がその後の生活の中で見つけた生活術やお役立ち情報をお届けします。

PowerShellとWMIを使ってCPUやメモリ、ディスク、BIOSなどの情報を取得する方法

   

PowerShellを使って、コンピューターの各種情報を取得したい!

PowerShellを使って複数のPCの運用管理をしている場合、コンピューター名やOSのビット数(32ビット / 64ビット)、適用済みの更新プログラムの状況などに応じて、メンテナンス内容を切り替えて実行したい!
というケースは少なくありません。

このブログでは、以前にコンピューター名やOSのビット数、適用済みの更新プログラムの状況などの情報を、PowerShellを使って取得する方法をご紹介しています。

参考:
PowerShellを使ってコンピューター名やOSのバージョン、ビットなどの情報を取得する方法
PowerShellを使って適用済みの更新プログラムの一覧(Windows UpdateのKB番号)を取得する方法

ですがこれらの方法で取得できる情報では足りず、より詳細なコンピューターに関する情報。
たとえばCPUやメモリ、物理・論理ディスク、BIOS、ネットワークアダプターに関する詳細な情報などを取得したい場合もあるでしょう。

そこで今回は、PowerShellを使ってコンピューターに関する詳細な各種情報を取得する方法をご紹介します!

PowerShellを使ってコンピューターに関する詳細な各種情報を取得する場合は、WMIの機能を利用する!

PowerShellを使ってコンピューターに関する詳細な各種情報を取得する際は、Windows OSに標準搭載されているWMIという機能を利用します。

WMI(Windows Management Instrumentation)は、Windows OSが搭載されているコンピューターのシステム構成要素について、情報収集を行う管理機能です。

WMIはWindows 2000時代からWindowsに標準搭載されている機能であり、現在広く利用されているであろうWindows 10やWindows 8.1、Windows Server 2019 / 2016、Windows Server 2012 R2世代のWindows OSであれば、機能のインストール作業などは不要です。

PowerShellでWMIの機能を利用して結果物を取得したいときは、『Get-WmiObject』コマンドレットを使用する!

PowerShellでは、WMIの機能を呼び出して結果を取得する『Get-WmiObject』というコマンドレットが用意されており、これを使ってコンピューターの各種詳細情報を取得します。

『Get-WmiObject』コマンドレットは、『Get-WmiObject WMIクラス』という構文でコマンドを実行することで、結果物を取得します。

WMIクラスとは、WMIの機能を呼び出して結果物を取得する際、取得対象の結果物を指定するための識別子のようなものと考えてください。

すべての情報を取得したいときは、明示的にすべてのプロパティ情報を取得するよう指定する!

PowerShellで『Get-WmiObject WMIクラス』という構文のコマンドを実行してコンピューターに関する詳細情報を取得した際、結果物のすべての情報が取得されず、一部の結果のみ標準出力されてしまうことがあります。

そのため『Get-WmiObject』コマンドレットを使って、すべての詳細な情報を取得したいときは、『Get-WmiObject WMIクラス | Format-List -Property *』という構文でコマンドを実行してください。

※指定したWMIクラスによっては、『Get-WmiObject WMIクラス』構文と『Get-WmiObject WMIクラス | Format-List -Property *』構文を使ったコマンドの実行結果が、ほとんど同一である場合もあります。

PowerShellとWMIの機能を使って、代表的なコンピューターの情報を取得する方法

参考までに、PowerShellとWMIの機能を使って、代表的なコンピューターの情報を取得する方法について、いくつかご紹介しましょう。

BIOSの詳細な情報を取得する方法

BIOSの詳細な情報を取得する際は、WMIクラスの『Win32_BIOS』を指定します。

上記コマンドを実行すると、以下のような結果物を取得できます。

CPUの詳細な情報を取得する方法

CPUの詳細な情報を取得する際は、WMIクラスの『Win32_Processor』を指定します。

上記コマンドを実行すると、以下のような結果物を取得できます。

物理メモリの詳細な情報を取得する方法

物理メモリの詳細な情報を取得する際は、WMIクラスの『Win32_PhysicalMemory』を指定します。

上記コマンドを実行すると、以下のような結果物を取得できます。

プロセスの詳細な情報を取得する方法

プロセスの詳細な情報を取得する際は、WMIクラスの『Win32_Process』を指定します。

上記コマンドを実行すると、以下のような結果物を取得できます。

物理ディスクの詳細な情報を取得する方法

物理ディスクの詳細な情報を取得する際は、WMIクラスの『Win32_DiskDrive』を指定します。

上記コマンドを実行すると、以下のような結果物を取得できます。

論理ディスクの詳細な情報を取得する方法

論理ディスクの詳細な情報を取得する際は、WMIクラスの『Win32_LogicalDisk』を指定します。

上記コマンドを実行すると、以下のような結果物を取得できます。

その他使用頻度が高いと思われるWMIクラスについて

すでにご紹介した『Win32_Processor』や『Win32_PhysicalMemory』WMIクラスの他に、使用頻度が高いと思われるWMIクラスについても列挙、ご紹介しておきましょう。

  • Win32_NTLogEvent
  • Win32_OperatingSystem
  • Win32_Printer
  • Win32_ComputerSystem
  • Win32_NetworkAdapter
  • Win32_Service
  • Win32_UserAccount
  • Win32_Product
  • Win32_ComputerSystemProduct

『Get-WmiObject』コマンドレットで使用可能なWMIクラスの一覧を取得する方法

ここまでにご紹介したとおり、『Get-WmiObject』コマンドレットを使うことで、コンピューターに関するさまざまな情報を取得できます。
そしてコマンドを実行する際に重要なのが、指定するWMIクラスです。

そこで最後に、コンピューターで利用できるWMIクラスの一覧を取得する方法をご紹介しましょう。

コンピューターで利用できるWMIクラスの一覧を取得したいときは、『(Get-WmiObject -class meta_class).Name』※、または『(Get-WmiObject -List).Name』などのコマンドを実行してください。
コマンドを実行することで、利用可能なWMIクラスの一覧を取得できます。

※-classを省略し、『(Get-WmiObject meta_class).Name』と指定することでも一覧を取得可能です。

結果一覧をソートした状態で取得したいときは、『(Get-WmiObject -class meta_class).Name | sort』というコマンドを実行してください。

『Get-WmiObject』コマンドレットを実行し、利用可能なWMIクラスの一覧を取得している様子

そして表示・取得されたWMIクラスの一覧から、対象の情報を取得できそうなWMIクラスを探し、『Get-WmiObject』コマンドレットと組み合わせて使用すると良いでしょう。

以上、参考になさってくださーい!

 - Windows, デジタル・家電

ピックアップ コンテンツ&スポンサーリンク