WMI Archive
【Perl, Windows】WMIに接続する(応用編)
前回はWMIへの接続の基本を書いた。
しかし、この構文ではローカルのPC、しかも現在のユーザー資格情報で接続しようとする。別の資格情報を使ったり、他のPCの情報が欲しいときは次の構文を使う。
前回の例(デスクトップの壁紙のファイル名を得るスクリプト)を書き直してみよう。
$wmi = Win32::OLE->GetObject( "winmgmts:/root/CIMV2" ); $items = $wmi->ExecQuery( $sql );
しかし、この構文ではローカルのPC、しかも現在のユーザー資格情報で接続しようとする。別の資格情報を使ったり、他のPCの情報が欲しいときは次の構文を使う。
$locator = Win32::OLE->CreateObject( "WbemScripting.SWbemLocator" ) $wmi = $locator->connectserver( "サーバー名", "root/CIMV2", "ユーザー名", "パスワード" );
前回の例(デスクトップの壁紙のファイル名を得るスクリプト)を書き直してみよう。
- Comments: 0
- TrackBacks: 0
【Perl, Windows】WMIに接続する(基本編)
前回のネタについて細かく見て行こう。
そもそもWMIとは何か。
これだけではなんだかよくわからないが、要するに、OSから得られる様々な情報に対する統括的なインターフェイスだ。Windowsの状態について知りたいならばこれで全て賄えるのである。
PerlからこのWMIへのアクセスには
そもそもWMIとは何か。
Windows Management Instrumentation - Wikipedia
http://ja.wikipedia.org/wiki/WMI
Windows Management Instrumentation(WMI)は、Windows Driver Modelへの拡張の一種で、システムの構成要素について情報収集と通知を行うオペレーティングシステムのインタフェースを提供する。
これだけではなんだかよくわからないが、要するに、OSから得られる様々な情報に対する統括的なインターフェイスだ。Windowsの状態について知りたいならばこれで全て賄えるのである。
PerlからこのWMIへのアクセスには
Win32::OLEモジュールを使う。基本的な構文はこうだ。$wmi = Win32::OLE->GetObject( "winmgmts:/root/CIMV2" ); $items = $wmi->ExecQuery( $sql );
$sqlにはSQL(みたいな)構文が入る。例として、デスクトップに使っている壁紙のファイル名を得るプログラムを書いてみよう。- Comments: 0
- TrackBacks: 0
【Perl, Windows】使っているコーデックの一覧を得る
WMIを使ってコーデックの一覧を得るスクリプト。かなり煩雑で独自表記っぽくなってるけど、これもMooseの勉強の一環ってことで。コマンドプロンプトから
表示する情報を制限したり、管理者権限のあるユーザー名とパスワードがわかれば、他のPCにアクセスしてリストを取り出すこともできる。
perl codec.plとすると次のような結果が得られる。
C:\> perl codec.pl
No.1
Manufacturer: Microsoft Corporation
Name: C:\Windows\system32\MSRLE32.DLL
Path: \windows\system32\
Version: 6.1.7600.16490
Caption: c:\windows\system32\msrle32.dll
Drive: c:
Extension: dll
FileType: Application Extension
Group: Video
CreationDate: 2010/02/11 16:41:07
InstallDate: 2010/02/11 16:41:07
LastModified: 2009/12/19 18:47:46
No.2
Manufacturer: None
Name: C:\Windows\system32\FF_ACM.ACM
Path: \windows\system32\
〜以下省略〜
表示する情報を制限したり、管理者権限のあるユーザー名とパスワードがわかれば、他のPCにアクセスしてリストを取り出すこともできる。
C:\> perl codec.pl --server コンピューター名 --user ユーザー名 --password パスワード --prop Name --prop Manufacturer
No.1
Name: C:\Windows\system32\MSRLE32.DLL
Manufacturer: Microsoft Corporation
No.2
Name: C:\Windows\system32\FF_VFW.DLL
Manufacturer: None
No.3
Name: C:\Windows\system32\FRAPSV64.DLL
Manufacturer: Beepa P/L
〜以下省略〜
使っているテクニックについては、日を改めて説明しよう。(一度に書いたらネタが無くなるしね!)- Comments: 0
- TrackBacks: 0
特定のメール(Outlook)を自動的に削除するスクリプト
- 2010年1月28日 22:08
- WMI | javascript
- Tweet
社内で「特定人物向けのメールを全員に送信しちゃった! 何とかして!」と言われたときに作ったスクリプト。グループポリシーを使ってPCにログオンしたときに起動するように設定することを想定している。Outlookを自動的に起動して受信メールをチェックし、条件に合うもの(今回は特定の語句を題名に含むもの)を削除する。
- Comments: 0
- TrackBacks: 0
- Feeds
- CC Licence
-
このブログはクリエイティブ・コモンズでライセンスされています。
- Ferret アクセス解析
- W3C Validation
