前回はWMIへの接続の基本を書いた。
$wmi = Win32::OLE->GetObject( "winmgmts:/root/CIMV2" ); $items = $wmi->ExecQuery( $sql );
しかし、この構文ではローカルのPC、しかも現在のユーザー資格情報で接続しようとする。別の資格情報を使ったり、他のPCの情報が欲しいときは次の構文を使う。
$locator = Win32::OLE->CreateObject( "WbemScripting.SWbemLocator" ) $wmi = $locator->connectserver( "サーバー名", "root/CIMV2", "ユーザー名", "パスワード" );
前回の例(デスクトップの壁紙のファイル名を得るスクリプト)を書き直してみよう。