PowerShell Cmdlet - Get-EventLog
 記事記号:[mf1967] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Get-EventLog
    
概要
    ローカル コンピューターまたはリモート コンピューター上のイベント ログまたは
    イベント ログの一覧のイベントを取得します。
    
構文
    Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParamete
    rs>]
    
    Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTime
    >] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-EntryTy
    pe <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest <int>] [-Sour 
    ce <string[]>] [-UserName <string[]>] [<CommonParameters>]
    
説明
    Get-EventLog コマンドレットは、ローカル コンピューターおよびリモート コンピ
    ューター上のイベントおよびイベント ログを取得します。
    
    プロパティ値を使用してイベントを検索するには、Get-EventLog のパラメーターを
    使用します。Get-EventLog は、指定されたプロパティ値のすべてと一致するイベン
    トのみを取得します。
    
    EventLog という名詞を含むコマンドレット (EventLog コマンドレット) は、従来の
    イベント ログでのみ有効です。Windows Vista 以降のバージョンで Windows イベン
    ト ログ技術を使用しているログからイベントを取得するには、Get-WinEvent を使用
    します。
    
パラメーター
    -After <DateTime>
        指定された日時の後に発生するイベントのみを取得します。Get-Date コマンド
        レットによって返されるような DateTime オブジェクトを入力してください。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -AsBaseObject [<SwitchParameter>]
        各イベントの標準 System.Diagnostics.EventLogEntry オブジェクトを返します。
        このパラメーターがない場合、Get-EventLog は追加の EventLogName、Source、
        および InstanceId プロパティのある拡張 PSObject オブジェクトを返します。
        
        このパラメーターの影響を確認するには、Get-Member コマンドレットに対して
        イベントをパイプ処理し、その結果に含まれる TypeName 値を調べます。
        
        必須                         false
        位置                         named
        既定値                       False
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -AsString [<SwitchParameter>]
        出力をオブジェクトではなく文字列として返します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Before <DateTime>
        指定された日時の前に発生するイベントのみを取得します。Get-Date コマンド
        レットによって返されるような DateTime オブジェクトを入力してください。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -ComputerName <string[]>
        リモート コンピューターを指定します。既定値はローカル コンピューターです。
        
        リモート コンピューターの NetBIOS 名、インターネット プロトコル (IP) ア
        ドレス、または完全修飾ドメイン名を入力します。ローカル コンピューターを
        指定するには、コンピューター名、ドット (.)、または「localhost」を入力し
        ます。
        
        このパラメーターは、Windows PowerShell リモート処理に依存しません。コン
        ピューターがリモート コマンドを実行するように構成されていない場合でも、G
        et-EventLog の ComputerName パラメーターを使用できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -EntryType <string[]>
        指定された入力型を持つイベントのみを取得します。有効な値は、Error、Infor
        mation、FailureAudit、SuccessAudit、および Warning です。既定値はすべて
        のイベントです。
        
        必須                         false
        位置                         named
        既定値                       すべてのイベント
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Index <Int32[]>
        指定されたインデックス値を持つイベントのみを取得します。
        
        必須                         false
        位置                         named
        既定値                       すべてのイベント
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InstanceId <Int64[]>
        指定されたインスタンス ID を持つイベントのみを取得します。
        
        必須                         false
        位置                         2
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -List [<SwitchParameter>]
        コンピューター上のイベント ログの一覧を取得します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -LogName <string>
        イベント ログを指定します。1 つのイベント ログのログ名 (LogDisplayName 
        ではなく Log プロパティの値) を入力します。ワイルドカード文字は使用でき
        ません。このパラメーターは必須です。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Message <string>
        メッセージに指定された文字列が含まれるイベントを取得します。このプロパテ
        ィを使用すると、特定の語句を含むメッセージを検索できます。ワイルドカード
        を使用できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する true
        
    -Newest <int>
        取得されるイベントの最大数を指定します。Get-EventLog はログの最新のイベ
        ントから順に、指定された数のイベントを取得します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Source <string[]>
        指定されたソースによってログに書き込まれたイベントを取得します。ワイルド
        カードを使用できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する true
        
    -UserName <string[]>
        指定されたユーザー名と関連付けられているイベントのみを取得します。User01、
        User*、Domain01\User* など、名前または名前のパターンを入力してください。
        ワイルドカードを使用できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する true
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    なし
        パイプを使用してこのコマンドレットに入力を渡すことはできません。
    
出力
    System.Diagnostics.EventLogEntry。System.Diagnostics.EventLog。System.String
        LogName パラメーターを指定すると、出力は EventLogEntry オブジェクトのコ
        レクション (System.Diagnostics.EventLogEntry) となります。
        
        List パラメーターのみを指定すると、出力は EventLog オブジェクトのコレク
        ション (System.Diagnostics.EventLog) となります。
        
        List パラメーターと AsString パラメーターの両方を指定すると、出力は Stri
        ngs のコレクション (System.String) となります。
    
メモ
    
    -------------------------- 例 1 --------------------------
    
    C:\PS>get-eventlog -list
    
    説明
    -----------
    このコマンドを実行すると、コンピューター上のイベント ログに関する情報が表示
    されます。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>get-eventlog -newest 5 -logname application
    
    説明
    -----------
    このコマンドを実行すると、アプリケーション イベント ログの最新のエントリが 
    5 件表示されます。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>$events = get-eventlog -logname system -newest 1000
    
    C:\PS> $events | group-object -property source -noelement | sort-object -pro
    perty count -descending
    
    Count Name
    ----- ----
       75 Service Control Manager
       12 Print
        6 UmrdpService
        2 DnsApi
        2 DCOM
        1 Dhcp
        1 TermDD
        1 volsnap
    
    説明
    -----------
    この例は、システム イベント ログの最新エントリ 1000 件に示されたすべてのソー
    スを検索する方法を示します。
    
    最初のコマンドを実行すると、システム イベント ログから最新のエントリが 1000 
    件取得され、$events 変数に格納されます。
    
    2 番目のコマンドは、パイプライン演算子 (|) を使用して、$events に保存されて
    いるイベントを Group-Object コマンドレットに送信します。このコマンドレット
    は、Source プロパティの値によってエントリをグループ化します。このコマンドは、
    第 2 のパイプライン演算子を使用してグループ化されたイベントを Sort-Object 
    コマンドレットに送信します。このコマンドレットはそれらを降順に並べ替えるの
    で、頻繁に表示されるソースから先に一覧に表示されます。
    
    ソースはイベント ログ エントリのプロパティにすぎません。イベント ログ エン
    トリのすべてのプロパティを表示するには、Get-Member コマンドレットに対してイ
    ベントをパイプ処理します。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>get-eventlog -logname System -EntryType Error
        
    説明
    -----------
    このコマンドは、システム イベント ログからエラー イベントのみを取得します。
    
    -------------------------- 例 5 --------------------------
    
    C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM"
    
    説明
    -----------
    このコマンドは、InstanceID が 3221235481 で Source の値が "DCOM" のイベント
    をシステム ログから取得します。
    
    -------------------------- 例 6 --------------------------
    
    C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, Se
    rver01, Server02
    
    説明
    -----------
    このコマンドは、Server01、Server02、および "localhost" と呼ばれるローカル コ
    ンピューターの 3 台のコンピューター上の "Windows PowerShell" イベント ログか
    らイベントを取得します。
    
    -------------------------- 例 7 --------------------------
    
    C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*"
    
    説明
    -----------
    このコマンドは、Windows PowerShell イベント ログ内で、メッセージの値に "fail
    ed" という単語が含まれるすべてのイベントを取得します。
    
    -------------------------- 例 8 --------------------------
    
    C:\PS>$a = get-eventlog -log System -newest 1
    
    C:\PS> $a | format-list -property *
    
    EventID            : 7036
    MachineName        : Server01
    Data               : {}
    Index              : 10238
    Category           : (0)
    CategoryNumber     : 0
    EntryType          : Information
    Message            : The description for Event ID
    Source             : Service Control Manager
    ReplacementStrings : {WinHTTP Web Proxy Auto-Disco
    InstanceId         : 1073748860
    TimeGenerated      : 4/11/2008 9:56:05 PM
    TimeWritten        : 4/11/2008 9:56:05 PM
    UserName           :
    Site               :
    Container          :
    
    説明
    -----------
    この例は、イベントのすべてのプロパティ値を表示する方法を示しています。
    
    最初のコマンドは、システム イベント ログから最新のイベントを取得し、$a 変数
    に保存します。
    
    2 番目のコマンドは、パイプライン演算子 (|) を使用して $a に格納されるイベン
    トを Format-List コマンドに送信します。これによりイベント プロパティのすべて 
    (*) が表示されます。
    
    -------------------------- 例 9 --------------------------
    
    C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 
    34}
    
    説明
    -----------
    このコマンドは、アプリケーション イベント ログから Source が Outlook でイベ
    ント ID が 34 であるイベントを取得します。Get-EventLog には EventID パラメ
    ーターはありませんが、Where-Object コマンドレットを使用するとイベント プロ
    パティの値に基づきイベントを選択できます。
    
    -------------------------- 例 10 --------------------------
    
    C:\PS>get-eventlog -log system -username NT* | group-object -property userna
    me -noelement | format-table Count, Name -auto
    
    Count Name
    ----- ----
     6031 NT AUTHORITY\SYSTEM
       42 NT AUTHORITY\LOCAL SERVICE
        4 NT AUTHORITY\NETWORK SERVICE
    
    説明
    -----------
    このコマンドは、システム ログのイベントを UserName プロパティの値でグループ
    化して返します。Get-EventLog コマンドは、UserName パラメーターを使用してユー
    ザー名が "NT*" で始まるイベントのみを取得します。
    
    -------------------------- 例 11 --------------------------
    
    C:\PS>$May31 = get-date 5/31/08
    
    C:\PS> $July1 = get-date 7/01/08
    
    C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may3
    1 -before $july1
    
    説明
    -----------
    このコマンドは、Windows PowerShell イベント ログから 2008 年 6 月に発生した
    すべてのエラーを取得します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113314
    Get-WinEvent 
    Clear-EventLog 
    Limit-EventLog 
    New-EventLog 
    Remove-EventLog 
    Show-EventLog 
    Write-EventLog 
    Get-WinEvent 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Get-EventLog
ご利用数: 1974566
感想・要望・問い合わせは こちら