Eseménynaplóval kapcsolatos egyéb műveletek

Az eseménynaplóval kapcsolatos leggyakoribb műveletek a bejegyzések közti keresés és az adatok megjelenítése, de a PowerShell további cmdleteket is tartalmaz ezzel kapcsolatban.

Az egyik ilyen cmdlet a Show-EventLog . Ez a parancs nem csinál sok mindent, egyszerűen megnyitja a grafikus EventViewer alkalmazást, egyetlen paramétere a számítógép-név, azaz hogy mely számítógép eseménynaplóját kívánjuk megnyitni.

A következő cmdlet a Limit-EventLog . Ezzel az egyes eseménynaplók maximális méretét állíthatjuk be, illetve azt, hogy a betelés esetén mi történjen: felülírja a régebbi bejegyzéseket, csak bizonyos korú bejegyzéseket írjon felül, stb.

Van még a New-EventLog , mellyel új eseménynaplót tudunk létrehozni. Ezzel a paranccsal klasszikus formátumú új eseménynapló hozható létre, mely a többi EventLog főnevet tartalmazó cmdlettel kezelhető. Ahhoz, hogy ilyen új eseménynaplót hozhassunk létre a naplóbejegyzések statikus szövegeit és tulajdonságneveit tartalmazó erőforrás dll-t is meg kell adnunk, valamint azt, hogy mi lesz az ide beírni kívánt bejegyzések forrása.

Az előző cmdlet párja a Remove-EventLog , mellyel eseménynaplót vagy forrást lehet megszűntetni.

Ennél szelídebb és talán gyakrabban használatos a Clear-EventLog , mellyel a klasszikus eseménynaplókat lehet üríteni, akár távoli gépen is.

Ami még praktikusabb, az a Write-EventLog . Segítségével bejegyzéseket írhatunk az eseménynaplókba. Nézzünk erre példát is:

[59] PS C:\> Write-EventLog -LogName application -EntryType information -Source

 PowerShellScript -Category 1 -EventId 10000 -Message "A szkriptem elindult" -R

awData 1,2

Write-EventLog : The source name "PowerShellScript" does not exist on computer

 "localhost".

At line:1 char:15

+ Write-EventLog <<<<  -LogName application -EntryType information -Source Pow

erShellScript -Category 1 -EventId 10000 -Message "A szkriptem elindult" -RawD

ata 1,2

    + CategoryInfo          : InvalidOperation: (:) [Write-EventLog], Invalid

   OperationException

    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteEventLogComm

   and

Hoppá! Ez hibát adott. A hiba oka, hogy az Application naplóhoz még nem lett létrehozva lehetséges forrásként az általam megadott „PowerShellScript”. Pótoljuk ezt a hiányosságot, sajnos nem PowerShell cmdlettel, hanem .NET osztály statikus metódusával:

[61] PS C:\> [System.Diagnostics.EventLog]::CreateEventSource("PowerShellScript

","Application")

Akkor most újra próbálom a bejegyzésemet beírni az eseménynaplóba:

[62] PS C:\> Write-EventLog -LogName application -EntryType information -Source

 PowerShellScript -Category 1 -EventId 10000 -Message "A szkriptem elindult" -R

awData 1,2

[63] PS C:\> Get-EventLog -LogName Application -Newest 1 | fl *

 

 

EventID            : 10000

MachineName        : dc.r2.dom

Data               : {1, 2}

Index              : 989

Category           : (1)

CategoryNumber     : 1

EntryType          : Information

Message            : A szkriptem elindult

Source             : PowerShellScript

ReplacementStrings : {A szkriptem elindult}

InstanceId         : 10000

TimeGenerated      : 2010. 01. 23. 22:45:23

TimeWritten        : 2010. 01. 23. 22:45:23

UserName           :

Site               :

Container          :

Na így már sikerült!

Megjegyzés

Azt, hogy egy naplóhoz milyen források vannak már bejegyezve egy registry kulcs segítségével nézhetjük meg:

[66] PS C:\> dir HKLM:\SYSTEM\CurrentControlSet\Services\Eventlog\Application\

 

 

    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Applic

    ation

 

 

SKC  VC Name                           Property

---  -- ----                           --------

  0   2 .NET Runtime                   {TypesSupported, EventMessageFile}

  0   2 .NET Runtime Optimization S... {TypesSupported, EventMessageFile}

  0   2 Application                    {CategoryCount, CategoryMessageFile}

  0   4 Application Error              {EventMessageFile, TypesSupported, C...

  0   1 PerfProc                       {ProviderGuid}

  0   1 PowerShellScript               {EventMessageFile}

  0   1 Process Exit Monitor           {providerGuid}

A fenti listában látható az általam bejegyzett PowerShellScript forrás.

Az általunk beírt eseménynapló bejegyzésekkel például két külön ablakban futó PowerShell szkript egymás közti kommunikációját is megoldhatjuk, vagy a Task Scheduler segítségével a mi általunk definiált eseménynapló-bejegyzés megjelenésére tudunk indíttatni egy parancssort, többek között PowerShell szkriptet.



Word To HTML Converter