search
LoginSignup
8

More than 1 year has passed since last update.

posted at

updated at

WMI -> CIM への書き換え例

WMI v1 Cmdlets は廃されつつあり(Nano Server向けのPowerShellや、PowerShell Core 6.0 以降では既に廃止)、 CIM Cmdlets への移行が促されているので。

プロパティを閲覧するだけなら、 Get-WmiObjectGet-CimInstance に、 -Class-ClassName に置き換えるだけで済むことも多いようですが。

CIM プロパティ・メソッドの一覧

Class Properties の表示

(Get-CimClass -Namespace root/CIMV2/TerminalServices -ClassName Win32_TerminalServiceSetting).CimClassProperties;

Class Methods の表示

(Get-CimClass -Namespace root/CIMV2/TerminalServices -ClassName Win32_TerminalServiceSetting).CimClassMethods;

メソッドの実行に必要な引数の名前はこのような感じで確認できます。

WMI -> CIM メソッド実行の書き換え例

例: ログオフ

この例ではリモートコンピュータを指定しているため、対象のコンピュータ(この場合は . = 自分自身)で Windows Remote Management (WinRM) 機能の有効化(対象コンピュータの管理者権限のPowerShell上で Enable-PSRemoting を実行する)、及びネットワークのプロファイルをPrivateに設定する(Publicのネットワークからは WinRM の接続を受け入れない)。

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(0);
  • CIM
Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName .|
Invoke-CimMethod -MethodName Win32Shutdown -Arguments @{Flags=0};

例: リモートデスクトップの許可

(Get-WmiObject -Namespace root\CIMV2\TerminalServices -Class Win32_TerminalServiceSetting).SetAllowTSConnections(1,1);
  • CIM
Get-CimInstance -Namespace root/CIMV2/TerminalServices -ClassName Win32_TerminalServiceSetting|
Invoke-CimMethod -MethodName SetAllowTSConnections -Arguments @{AllowTSConnections=1;ModifyFirewallException=1};

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8