none
Get-Wineventコマンドのリモート実行について RRS feed

  • 質問

  • ローカルで実行しているGet-wineventコマンドをInvoke-Commandを利用してリモートコンピュータに対して実行しましたが、エラーにより失敗してしまいます。実施している内容は以下になります。

    ■実行コマンド(ローカル)

    Get-WinEvent -FilterHashtable @{Logname='System';ID=12,13,19,43}}

    ■実行コマンド(リモートコンピュータ)

    $PSSession = New-PSSession -ComputerName $c
     Invoke-Command -Session $PSSession -scriptblock {Get-WinEvent -FilterHashtable @{Logname='System';ID="12","13"}}| Export-csv -path $resultpath -Encoding Default

    上記コマンドを実行すると、指定した選択条件に一致するイベントが見つかりませんでした。というエラーメッセージが表示されます。おそらくIDの複数指定の形式が正しくないと思われるのですが、どのように指定すれば良いか不明ですので、ご教示いただけますでしょうか。

    2019年11月28日 3:13

回答

  • 本件、自己解決しました。コマンドの形式を変更したところ、うまく動作いたしました。

    Invoke-Command -Session $PSSession -ScriptBlock {
     
        $Filter = @{
               Logname = "SYSTEM"
               ID = 12,13
               ProviderName = 'Microsoft-Windows-Kernel-General'
        }
        Get-WinEvent -FilterHashtable $Filter | Select-Object TimeCreated,ID,Message
     
    }  | Export-csv -path $resultpath -Encoding Default

    • 回答としてマーク Satoshi0131 2019年11月28日 4:50
    2019年11月28日 4:50

すべての返信

  • なぜローカルとリモートとで異なる形式で実行しているのでしょうか?
    2019年11月28日 3:32
  • 申し訳ありません。正しくは以下になります。

     Invoke-Command -Session $PSSession -scriptblock {Get-WinEvent -FilterHashtable @{Logname='System';ID=12,13,19,43}}

    2019年11月28日 3:58
  • 本件、自己解決しました。コマンドの形式を変更したところ、うまく動作いたしました。

    Invoke-Command -Session $PSSession -ScriptBlock {
     
        $Filter = @{
               Logname = "SYSTEM"
               ID = 12,13
               ProviderName = 'Microsoft-Windows-Kernel-General'
        }
        Get-WinEvent -FilterHashtable $Filter | Select-Object TimeCreated,ID,Message
     
    }  | Export-csv -path $resultpath -Encoding Default

    • 回答としてマーク Satoshi0131 2019年11月28日 4:50
    2019年11月28日 4:50