Home > Windows にまつわる e.t.c.

PowerShell Core での WMI ハンドリング


Windows OS でごにょごにょする場合、WMI を使う事が良くあります。

PowerShell では Get-WmiObject や、その Alias である gwmi を使って簡単に WMI をハンドリングできていたので、僕も多くのスクリプトで Get-WmiObject を使っていました。

ところが、PowerShell Core 6.x では WMIv1 コマンドレットが使えなくなってしまったんですね

PowerShell Core 6.0 の重要な変更 - PowerShell | Microsoft Docs
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6?WT.mc_id=WD-MVP-36880

 

色々調べてみると、Get-WmiObject の後継は、Get-CimInstance になっていました。

オプションを調べると -Class オプションが -ClassName になっているようです

WMIv1 PowerShell Core 6.x 以降
Get-WmiObject -Class Get-CimInstance -ClassName

 

Windows PowerShell 5.1 でも Get-CimInstance はサポートされているので、単純置き換えで済みそうです
(一部仕様が変わっているものもあるので、テストは必要ですけど)

 

スクリプトを grep して、適宜修正しますかね

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.