PowerShell オブジェクトのすべてのプロパティを表示する
-
Get-WmiObject
を使用して、PowerShell オブジェクトのすべてのプロパティを表示する - クラスインスタンス/オブジェクト情報を取得する
-
Format-List
コマンドレットを使用してプロパティを表示する
Windows マシンと、ネットワーク、アプリケーション、サービスなどのコンポーネントに関する情報を見つけるための要件があります。Common Information Model(CIM)は、これらのコンポーネントとその情報を操作するためのオープンソース標準です。
Microsoft は、Windows Management Instrumentation(WMI)と呼ばれる CIM に加えて、コンピューター、サービス、およびネットワーク情報を照会および操作するための標準を実装しました。
Get-WmiObject
を使用して、PowerShell オブジェクトのすべてのプロパティを表示する
Get-WmiObject
コマンドレットを使用して、WMI リポジトリから情報を要求できます。また、リモートシステムでの作業も可能になります。
したがって、Windows システムの管理プロセスがはるかに簡単になります。Get-WmiObject
コマンドレットを使用して、使用可能なクラスを確認しましょう。
Get-WmiObject -List
このコマンドは、ローカルマシンのデフォルトの名前名で使用可能なすべてのクラスを出力します。デフォルトの名前名は、Windows コンピューターでは ROOT\cimv2
です。
出力:
デフォルト以外の名前(ROOT\cimv2
)を指定することができます。 -Namespace
パラメータを使用して、デフォルトの名前名を変更できます。
Get-WmiObject -Namespace <custom_namespace>
クラスインスタンス/オブジェクト情報を取得する
使用できる WMI クラスは数百あります。次のように、特定のクラスの情報を取得できます。
Get-WmiObject -Class Win32_computersystem
ここでは、Win32_computersystem
クラスの情報を取得しています。次のように、プロパティを持つ Win32_computersystem
オブジェクトを返します。
出力に表示されるプロパティの数には制限があります。Win32_computersystem
オブジェクトには、これらよりも多くのプロパティが含まれています。
Format-List
コマンドレットを使用して、取得したオブジェクトのすべてのプロパティを表示できます。
Format-List
コマンドレットを使用してプロパティを表示する
Format-List
は、結果をフォーマットするために別のコマンドの出力とパイプすることができます。このコマンドレットは、取得した WMI オブジェクトの指定されたプロパティまたはすべてのプロパティを表示できます。
Win32_computersystem
インスタンスのいくつかのプロパティを指定しましょう。
Get-WmiObject -Class Win32_computersystem | Format-List -Property Name, Model, Manufacturer
出力:
Get-WmiObject
は、Win32_computersystem
オブジェクトのデフォルトのプロパティを返します。次に、出力はパイプライン演算子(|
)を介して Format-List
コマンドに渡されます。
-Property
パラメータを Format-List
コマンドレットに渡すことができます。これにより、指定された 3つのプロパティで最終出力が除外されます。
指定された WMI オブジェクトで使用可能なすべてのプロパティと値を確認することが重要な場合があります。その場合、-Property *
を使用して、使用可能なすべてのプロパティとその値を取得する必要があります。
*
はすべてのプロパティを示します。
Get-WmiObject -Class Win32_computersystem | Format-List -Property *
出力:
出力には、Win32_computersystem
オブジェクトで使用可能なすべてのプロパティと値が含まれています。上記のコマンドで -Property
パラメータを省略して書き込むことができます。
Get-WmiObject -Class Win32_computersystem | Format-List *
上記のコマンドは、上記と同じ出力を表示するはずです。
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.