[ホーム] > [間違えやすい類語 IT編一覧] > [Get-WmiObject と Get-CimClass の違い]

Get-WmiObject と Get-CimClass の違い

作成日:2020/01/29

このページでは、Windows環境における管理情報取得コマンドレットであるGet-WmiObject と Get-CimClass の違いに関して説明します。

以下の比較表にまとめています。取り出される管理情報は原則同じようですが、通信方法が異なるようです。








2019年12月に確認。

(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。

比較表

比較は以下の表の通りとなります。

説明Get-WmiObjectGet-CimClass
概要WmiとはCIM(管理標準)にDCOM(ネットワーク経由のアクセス)とMicrosoft独自のクラスと追加したもの。

Get-WmiObjectはこのWmiをPowershell経由で取得するコマンドレット。

Wmiは独自プロトコル(DCOM)だがFirewallで多くのポートを開ける必要がある欠点があった。通信をWinRM(PSRemoting)に変更してセキュリティを強化したコマンドレットがGet-CimClass。http,httpsなどでの通信が可能。
概要CIM + DCOMCIM + PSRemoting
クラスの一覧を出力
(結果を比較したところ同じ)
Get-WmiObject -list| select-object Name | Format-Table -AutoSize -WrapGet-CimClass -Namespace root\CIMv2 |select-object CimClassName | Format-Table -AutoSize -Wrap
戻り値のタイプ
(二つの関数で戻り値のタイプが異なる)
((Get-WmiObject -Class Win32_SystemBIOS).GroupComponent).GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
((Get-CimInstance -className Win32_SystemBIOS).GroupComponent).GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True CimInstance System.Object

Get-CimClass と Get-CimClass の違い



WMIC は将来的に廃止されると思われます。

Get-WmiObjectをGet-CimClassへ移植する注意点は以下の通りです。
・Get-WmiObjectをGet-CimClassへ置き換えて、-classを-classnameを置き換えればよい。
・Get-WmiObjectで1行で表現できたコードはGet-CimClass + PSRemotingの複数行になる場合がある。
・戻り値は同じようだが、タイプが異なる。



[ホーム] > [間違えやすい類語 IT編一覧]
,







【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。