04/11/08 06:28:52
>>83
できたぞ。喜べ。
検索キーワードは「"Win32::OLE" コレクション」。
OLEの世界のコレクションはperlの世界では単なるポインタなので、
そのままではループをまわせない。
それをどうやって扱うのか?
専用のWin32::OLE::Enumモジュールを使えばいいらしい。
以下コード。
use Win32::OLE;
use Win32::OLE::Enum;
$strComputer = ".";
$objWMIService = Win32::OLE->GetObject(
"winmgmts:{impersonationLevel=impersonate,(Backup)}!\\\\".
"$strComputer\\root\\cimv2");
$colLogFiles = $objWMIService->ExecQuery
("Select * from Win32_NTEventLogFile where LogFileName='Application'");
$enum = Win32::OLE::Enum->new($colLogFiles);
while (defined($item = $enum->Next)) {
$item->BackupEventLog("c:\\scripts\\test_application.evt");
$item->ClearEventLog();
}