Úlohy rozhraní WMI pro protokoly událostí získávají data událostí ze souborů protokolu událostí a provádějí operace, jako je zálohování nebo vymazání souborů protokolu. Další příklady najdete na webu TechNet ScriptCenter na https://www.microsoft.com/technet.
Příklady skriptů uvedené v tomto tématu získávají data pouze z místního počítače. Další informace o tom, jak pomocí skriptu získat data ze vzdálených počítačů, naleznete v tématu Připojení k rozhraní WMI na vzdáleném počítači.
Následující postup popisuje, jak spustit skript.
Spuštění skriptu
Zkopírujte kód a uložte ho do souboru s příponou .vbs, například název_souboru.vbs. Ujistěte se, že textový editor nepřidá do souboru .txt příponu.
Otevřete okno příkazového řádku a přejděte do adresáře, do kterého jste soubor uložili.
Na příkazovém řádku zadejte cscript filename.vbs.
Pokud nemáte přístup k protokolu událostí, zkontrolujte, jestli používáte příkazový řádek se zvýšenými oprávněními. Některé protokoly událostí, jako je protokol událostí zabezpečení, můžou být chráněné řízením uživatelských přístupů (UAC).
Poznámka
Ve výchozím nastavení cscript zobrazí výstup skriptu v okně příkazového řádku. Vzhledem k tomu, že skripty rozhraní WMI můžou vytvářet velké objemy výstupu, můžete chtít výstup přesměrovat na soubor. Na příkazovém řádku zadejte cscript filename.vbs > outfile.txt a přesměrujte výstup skriptu název_souboru.vbs do outfile.txt.
Následující tabulka uvádí příklady skriptů, které lze použít k získání různých typů dat z místního počítače.
Jak můžu...
Třídy nebo metody služby WMI
... načítá informace o protokolu událostí zabezpečení?
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery ("Select * from Win32_NTEventLogFile " & "Where LogFileName='Application'")
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("c:\scripts\application.evt")
WScript.Echo "File saved as c:\scripts\applications.evt"
Next
foreach ($objLogFile in $colLogFiles)
{
[void]$objLogFile.BackupEventlog("c:\scripts\applications.evt")
"File saved as c:\scripts\applications.evt"
}
... zálohovat protokol událostí více než jednou?
Před použitím Win32_NTEventlogFile a metody BackupEvent Log se ujistěte, že má záložní soubor jedinečný název. Operační systém neumožňuje přepsat existující záložní soubor; Před opětovným spuštěním skriptu musíte buď přesunout záložní soubor, nebo ho přejmenovat. Při připojování k rozhraní WMI možná budete muset zahrnout oprávnění zálohování. Další informace najdete v tématu Provádění privilegovaných operací pomocíjazyka VBScript .
VB
dtmThisDay = Day(Date)
dtmThisMonth = Month(Date)
dtmThisYear = Year(Date)
strBackupName = dtmThisYear & "_" & dtmThisMonth & "_" & dtmThisDay
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery ("Select * from Win32_NTEventLogFile " & "Where LogFileName='Application'")
For Each objLogfile in colLogFiles
objLogFile.BackupEventLog("c:\scripts\" & strBackupName & "_application.evt")
objLogFile.ClearEventLog()
WScript.Echo "File saved: " & strBackupName & "_application.evt"
Next
Použijte třídu Win32_NTEventlogFile a zkontrolujte hodnotu vlastnosti NumberOfRecords.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery ("Select * from Win32_NTEventLogFile " & "Where LogFileName='System'")
For Each objLogFile in colLogFiles
Wscript.Echo objLogFile.NumberOfRecords
Next