PowerShell オブジェクトのすべてのプロパティを表示する方法

  1. Get-WmiObject を使用して PowerShell オブジェクトのすべてのプロパティを表示する
  2. クラスインスタンス/オブジェクト情報を取得する
  3. プロパティを表示するために Format-List コマンドレットを使用する
  4. 結論
PowerShell オブジェクトのすべてのプロパティを表示する方法

Windows マシンとそのコンポーネント、ネットワーク、アプリケーション、サービスに関する情報を見つけるための要件があります。共通情報モデル(CIM)は、これらのコンポーネントとその情報を操作するためのオープンソースの標準です。

Microsoft は、コンピュータ、サービス、ネットワーク情報をクエリおよび操作するために CIM の上に Windows 管理インストゥルメンテーション(WMI)と呼ばれる標準を実装しました。

Get-WmiObject を使用して PowerShell オブジェクトのすべてのプロパティを表示する

Get-WmiObject コマンドレットは、特にシステム管理と管理タスクのための強力なツールです。ハードウェア、インストールされたソフトウェア、ネットワーク構成など、システムに関する豊富な情報を含む Windows 管理インストゥルメンテーション(WMI)データにアクセスできます。

Get-WmiObject のあまり知られていないが強力な機能の 1つは、-List パラメータを使用することです。このオプションを使用すると、指定されたネームスペース内のすべての WMI クラスのリストを取得できます。

Get-WmiObject -List の基本構文は次のとおりです:

Get-WmiObject -List [-Namespace <String>] [-ComputerName <String>]

主要なパラメータは以下の通りです:

  • -Namespace <String>:WMI リポジトリネームスペースを指定します。デフォルトは root\cimv2 で、一般的に使用される WMI クラスのほとんどが含まれています。
  • -ComputerName <String>:リモートコンピュータを対象とします。このパラメータがない場合、コマンドレットはローカルマシンで操作します。

したがって、Windows システム管理プロセスははるかに簡単になります。Get-WmiObject コマンドレットを使用して利用可能なクラスを確認しましょう。

Get-WmiObject -List

このコマンドは、ローカルマシンのデフォルトネームスペースにあるすべてのクラスを出力します。デフォルトネームスペースは、Windows コンピュータの ROOT\cimv2 です。

出力:

Get-WmiObject

デフォルトのもの(ROOT\cimv2)とは異なるネームスペースを指定することも可能です。デフォルトネームスペースを変更するには、-Namespace パラメータを使用できます。

Get-WmiObject -Namespace <custom_namespace>

クラスインスタンス/オブジェクト情報を取得する

Get-WmiObject -Class の使用は、システムの特定の側面に関する詳細情報を取得するために主に行われます。たとえば、Win32_Processor クラスにクエリを実行すると、プロセッサに関する情報が提供され、Win32_OperatingSystem は OS に関する詳細を明らかにします。

このコマンドレットの -Class パラメータは、WMI リポジトリ内の特定のクラスをクエリすることを可能にします。これらはシステム情報を表現するオブジェクトのテンプレートです。これらのクラスは、ハードウェアの詳細から構成設定まで、幅広いデータをカバーします。

構文:

Get-WmiObject -Class <String> [-Namespace <String>] [-ComputerName <String>]

主要なパラメータは以下の通りです:

  • -Class <String>:情報を必要とする WMI クラスを指定します。
  • -Namespace <String>:オプション。WMI リポジトリネームスペースを指定します(デフォルトは root\cimv2)。
  • -ComputerName <String>:オプション。コマンドをリモートコンピュータに指示します。

使用できる WMI クラスは数百あります。指定されたクラスの情報を取得できます。次のように示します。

Get-WmiObject -Class Win32_computersystem

ここでは、Win32_computersystem クラスの情報を取得しています。それは、コンピュータシステムに関するすべての情報を保持している Win32_computersystem オブジェクトとそのプロパティを返します。次のように示されています。

Get-WmiObject -Class

出力に表示されるプロパティの数は限られています。Win32_computersystem オブジェクトは、これらの他にも多くのプロパティを含んでいます。

取得したオブジェクトのすべてのプロパティを表示するために、Format-List コマンドレットを使用できます。

プロパティを表示するために Format-List コマンドレットを使用する

Format-List は、別のコマンドの出力とパイプすることで結果をフォーマットできます。このコマンドレットは、取得した WMI オブジェクトの指定されたまたはすべてのプロパティを読みやすい形式で表示できます。

構文:

Get-WmiObject -Class Win32_computersystem | Format-List -Property Name, Model, Manufacturer

Win32_computersystem インスタンスに対していくつかのプロパティを指定してみましょう。

  • Format-List [-Property <PropertyName[]>]:出力をリストとしてフォーマットします。
  • -Property <PropertyName[]>:オプション。表示するプロパティを指定します。省略すると、すべてのプロパティが表示されます。

出力:

フォーマット-リスト

Get-WmiObject は、Win32_computersystem オブジェクトのデフォルトプロパティを返します。その後、出力はパイプライン演算子(|)を介して Format-List コマンドに渡されます。

Format-List コマンドレットに -Property パラメータを渡すことができます。これにより、指定された 3つのプロパティで最終出力がフィルタリングされます。

時々、指定された WMI オブジェクトのすべてのプロパティと値を確認することが重要です。その場合、-Property *を使用して利用可能なすべてのプロパティとその値を取得する必要があります。

*はすべてのプロパティを示します。

Get-WmiObject -Class Win32_computersystem | Format-List -Property *

出力:

Format-List -Property

出力には、Win32_computersystem オブジェクトのすべてのプロパティと値が含まれています。上記のコマンドで -Property パラメータを省略することもできます。

Get-WmiObject -Class Win32_computersystem | Format-List *

上記のコマンドは、上記と同じ出力を表示する必要があります。

結論

PowerShell の Get-WmiObject の探求において、Windows システム管理におけるその重要な役割を明らかにしました。-List パラメータはユーザーにすべての WMI クラスを列挙する機能を与え、関連データソースの特定を助けます。

-Class に焦点を当て、Win32_ComputerSystem を例に詳細なシステム情報を取得する精度を示しました。Format-List の追加は出力の可読性を高め、幅広いプロパティリストを扱う際に重要です。

さらなる知識を深めるために、Win32_ProcessorWin32_OperatingSystem などのさまざまな WMI クラスを掘り下げてください。スクリプトに Get-WmiObject を組み込むことで、システム管理タスクを合理化できます。

多用途なツールとして、Get-WmiObject は初心者から経験豊富なユーザーまで幅広く対応しており、多様な IT タスクや自動化における PowerShell の重要性を体現しています。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

関連記事 - PowerShell Object