Aracılığıyla paylaş


about_Eventlogs

Kısa açıklama

Bu makalede, PowerShell'in olayları Windows Olay günlüğüne nasıl günlüğe kaydeddiği açıklanmaktadır.

Uzun açıklama

Windows PowerShell, Windows PowerShell olaylarını kaydetmek için "Windows PowerShell" adlı bir Windows olay günlüğü oluşturur. Bu günlüğü Olay Görüntüleyicisi veya cmdlet gibi Get-EventLog olayları alan cmdlet'leri kullanarak görüntüleyebilirsiniz. Varsayılan olarak, Windows PowerShell altyapısı ve sağlayıcı olayları olay günlüğüne kaydedilir, ancak olay günlüğünü özelleştirmek için olay günlüğü tercih değişkenlerini kullanabilirsiniz. Örneğin, Windows PowerShell komutları hakkında olaylar ekleyebilirsiniz.

Windows PowerShell olay günlüğü, program altyapısını başlatma ve durdurma, Windows PowerShell sağlayıcılarını başlatma ve durdurma gibi Windows PowerShell işlemlerinin ayrıntılarını kaydeder. Ayrıca Windows PowerShell komutları hakkındaki ayrıntıları da günlüğe kaydedebilirsiniz.

Windows PowerShell Olay Günlüğünü Görüntüleme

Windows PowerShell olay günlüğünü Olay Görüntüleyicisi veya ve Get-EventLog cmdlet'lerini Get-WmiObject kullanarak görüntüleyebilirsiniz. Windows PowerShell günlüğünün içeriğini görüntülemek için şunu yazın:

Get-EventLog -LogName "Windows PowerShell"

Olayları ve özelliklerini incelemek için cmdlet'ini, cmdlet'ini Sort-Object ve fiili içeren Group-Object cmdlet'leri (Formatcmdlet'ler) kullanınFormat.

Örneğin, olay kimliğine göre gruplandırılmış günlükteki olayları görüntülemek için şunu yazın:

Get-EventLog "Windows PowerShell" | Format-Table -GroupBy EventID

Veya şunu yazın:

Get-EventLog "Windows PowerShell" |
  Sort-Object EventID |
  Group-Object EventID

Tüm klasik olay günlüklerini görüntülemek için şunu yazın:

Get-EventLog -List

Olay günlüğünü incelemek üzere olayla ilgili Windows Yönetim Araçları (WMI) sınıflarını kullanmak için cmdlet'ini de Get-WmiObject kullanabilirsiniz. Örneğin, olay günlüğü dosyasının tüm özelliklerini görüntülemek için şunu yazın:

Get-WmiObject Win32_NTEventlogFile |
  where LogFileName -EQ "Windows PowerShell" |
  Format-List -Property *

Win32 olayla ilgili WMI sınıflarını bulmak için şunu yazın:

Get-WmiObject -List | where Name -Like "Win32*Event*"

Daha fazla bilgi için bkz . Get-EventLog ve Get-WmiObject.

Windows PowerShell Olay Günlüğü için Olayları Seçme

Windows PowerShell olay günlüğüne hangi olayların kaydedildiğini belirlemek için olay günlüğü tercih değişkenlerini kullanabilirsiniz.

Altı olay günlüğü tercih değişkeni vardır; üç günlük bileşeninin her biri için iki değişken: altyapı (Windows PowerShell programı), sağlayıcılar ve komutlar. LifecycleEvent değişkenleri normal başlatma ve durdurma olaylarını günlüğe kaydeder. Health değişkenleri hata olaylarını günlüğe kaydeder.

Aşağıdaki tabloda olay günlüğü tercih değişkenleri listelemektedir.

Değişken Açıklama
$LogEngineLifecycleEvent PowerShell'in başlangıç ve durdurmasını günlüğe kaydeder
$LogEngineHealthEvent PowerShell program hatalarını günlüğe kaydeder
$LogProviderLifecycleEvent PowerShell sağlayıcılarının başlangıç ve durdurmasını günlüğe kaydeder
$LogProviderHealthEvent PowerShell sağlayıcısı hatalarını günlüğe kaydeder
$LogCommandLifecycleEvent Komutların başlatılmasını ve tamamlanmasını günlüğe kaydeder
$LogCommandHealthEvent Günlükler komut hataları

(Windows PowerShell sağlayıcıları hakkında bilgi için bkz. about_Providers.)

Varsayılan olarak, yalnızca aşağıdaki olay türleri etkinleştirilir:

  • $LogEngineLifecycleEvent
  • $LogEngineHealthEvent
  • $LogProviderLifecycleEvent
  • $LogProviderHealthEvent

Bir olay türünü etkinleştirmek için, bu olay türü için tercih değişkenini olarak $trueayarlayın. Örneğin, komut yaşam döngüsü olaylarını etkinleştirmek için şunu yazın:

$LogCommandLifecycleEvent

Veya şunu yazın:

$LogCommandLifecycleEvent = $true

Bir olay türünü devre dışı bırakmak için, bu olay türü için tercih değişkenini olarak $falseayarlayın. Örneğin, yaşam döngüsü olaylarını devre dışı bırakmak için şunu yazın:

$LogProviderLifecycleEvent = $false

Windows PowerShell altyapısının ve çekirdek sağlayıcıların başlatıldığını gösteren olaylar dışında herhangi bir olayı devre dışı bırakabilirsiniz. Bu olaylar, Windows PowerShell profilleri çalışmadan önce ve konak programı komutları kabul etmeye hazır olmadan önce oluşturulur.

Değişken ayarları yalnızca geçerli Windows PowerShell oturumu için geçerlidir. Tüm Windows PowerShell oturumlarına uygulamak için bunları Windows PowerShell profilinize ekleyin.

Modül Olaylarını Günlüğe Kaydetme

Windows PowerShell 3.0'dan başlayarak, modüllerin ve ek bileşenlerinin LogPipelineExecutionDetails özelliğini olarak ayarlayarak Windows PowerShell modülleri ve ek bileşenlerindeki cmdlet'ler ve işlevler için yürütme olaylarını $truekaydedebilirsiniz. Windows PowerShell 2.0'da bu özellik yalnızca ek bileşenler için kullanılabilir.

LogPipelineExecutionDetails özellik değeri olduğunda$true, Windows PowerShell oturumdaki cmdlet ve işlev yürütme olaylarını Olay Görüntüleyicisi'deki Windows PowerShell günlüğüne yazar. Ayar yalnızca geçerli oturumda geçerlidir.

Bir modülde cmdlet'lerin ve işlevlerin yürütme olaylarının günlüğe kaydedilmesini etkinleştirmek için aşağıdaki komut dizisini kullanın.

Import-Module Microsoft.PowerShell.Archive
$m = Get-Module Microsoft.PowerShell.Archive
$m.LogPipelineExecutionDetails = $true

Bir ek bileşende cmdlet'lerin yürütme olaylarının günlüğe kaydedilmesini etkinleştirmek için aşağıdaki komut dizisini kullanın.

$m = Get-PSSnapin Microsoft.PowerShell.Core
$m.LogPipelineExecutionDetails = $true

Günlüğü devre dışı bırakmak için, özellik değerini $falseolarak ayarlamak için aynı komut dizisini kullanın.

Modül ve ek bileşen günlüğünü etkinleştirmek ve devre dışı bırakmak için Modül Günlüğü Grup İlkesini Aç ayarını da kullanabilirsiniz. İlke değeri, modül ve ek bileşen adlarının listesini içerir. Joker karakterler desteklenir.

Modül için Modül Günlüğünü Aç ayarlandığında, modülün LogPipelineExecutionDetails özelliğinin değeri tüm oturumlarda olur $true ve değiştirilemez.

"Modül Günlüğünü Aç" grup ilkesi ayarı aşağıdaki Grup İlkesi yollarında bulunur:

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

Kullanıcı Yapılandırması ilkesi, Bilgisayar Yapılandırması ilkesinden önceliklidir ve her iki ilke de modüllerin ve ek bileşenlerinin LogPipelineExecutionDetails özelliğinin değerinden daha önceliklidir.

Bu Grup İlkesi ayarı hakkında daha fazla bilgi için bkz . about_Group_Policy_Settings.

Güvenlik ve Denetim

Windows PowerShell olay günlüğü, etkinliği göstermek ve sorun giderme için işlem ayrıntılarını sağlamak üzere tasarlanmıştır.

Ancak çoğu Windows tabanlı uygulama olay günlüğü gibi Windows PowerShell olay günlüğü de güvenli olacak şekilde tasarlanmamıştır. Güvenliği denetlemek veya gizli veya özel bilgileri kaydetmek için kullanılmamalıdır.

Olay günlükleri, kullanıcılar tarafından okunacak ve anlaşılacak şekilde tasarlanmıştır. Kullanıcılar günlükten okuyabilir ve günlüğe yazabilir. Kötü amaçlı bir kullanıcı yerel veya uzak bir bilgisayardaki olay günlüğünü okuyabilir, hatalı veriler kaydedebilir ve ardından etkinliklerinin günlüğe kaydedilmesini engelleyebilir.

Notlar

Modül yazarlarının yazarları modüllerine günlük özellikleri ekleyebilir. Daha fazla bilgi için bkz . Windows PowerShell Modülü Yazma.

Ayrıca bkz.