Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PS使用带有FilterXPath和datetime变量的Get-WinEvent? 我从事件日志中按时间顺序抓取了一些事件 不想用管道输送到哪里 想要使用GetWinEvent吗_Datetime_Powershell_Filtering_Event Log - Fatal编程技术网

PS使用带有FilterXPath和datetime变量的Get-WinEvent? 我从事件日志中按时间顺序抓取了一些事件 不想用管道输送到哪里 想要使用GetWinEvent吗

PS使用带有FilterXPath和datetime变量的Get-WinEvent? 我从事件日志中按时间顺序抓取了一些事件 不想用管道输送到哪里 想要使用GetWinEvent吗,datetime,powershell,filtering,event-log,Datetime,Powershell,Filtering,Event Log,在获取Event1之后,我需要获取另一个事件的第一个实例,该事件在Event1之后的未知时间内发生。然后抓取事件2之后某个时间发生的事件3,以此类推 基本上从: $filterXML = @' <QueryList> <Query Id="0" Path="System"> <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (L

在获取Event1之后,我需要获取另一个事件的第一个实例,该事件在Event1之后的未知时间内发生。然后抓取事件2之后某个时间发生的事件3,以此类推

基本上从:

$filterXML = @'
<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (Level=4 or Level=0) and (EventID=12)]]</Select>
  </Query>
</QueryList>
'@    
$event1=(Get-WinEvent -ComputerName $PCname -MaxEvents 1 -FilterXml $filterXML).timecreated

这就是你想要的

$t = (((Get-WinEvent -ComputerName $PCname -MaxEvents 1 -FilterXml $filterXML).TimeCreated).ToUniversalTime()).ToString("s")
顺便说一句,我需要电脑启动的时间,像这样的事情

$t1 = (((Get-WinEvent -ComputerName "myhostname" -LogName "System" -MaxEvents 1 -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Kernel-General']][EventID=12]]").TimeCreated).ToUniversalTime()).ToString("s")

然后


这就是你想要的

$t = (((Get-WinEvent -ComputerName $PCname -MaxEvents 1 -FilterXml $filterXML).TimeCreated).ToUniversalTime()).ToString("s")
顺便说一句,我需要电脑启动的时间,像这样的事情

$t1 = (((Get-WinEvent -ComputerName "myhostname" -LogName "System" -MaxEvents 1 -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Kernel-General']][EventID=12]]").TimeCreated).ToUniversalTime()).ToString("s")

然后


没有必要将所有内容都塞进一条线上:

$t1 = [datetime]::Today.AddDays(-1).ToUniversalTime().ToString('s')
$xpath = @"
    *[System[TimeCreated[@SystemTime>'$t1']]
     [EventID=4624]]
     [EventData[Data='Sens' and Data='Logoff']]
"@

Get-WinEvent -ComputerName myhostname -LogName Security -FilterXPath $xpath -MaxEvents 1

没有必要将所有内容都塞进一条线上:

$t1 = [datetime]::Today.AddDays(-1).ToUniversalTime().ToString('s')
$xpath = @"
    *[System[TimeCreated[@SystemTime>'$t1']]
     [EventID=4624]]
     [EventData[Data='Sens' and Data='Logoff']]
"@

Get-WinEvent -ComputerName myhostname -LogName Security -FilterXPath $xpath -MaxEvents 1

*where对象有什么问题?速度明显较慢。尤其是在通过大型安全系统时log@ScottWeinstein而且,可能是不正确的。如果指定MaxEvents来获取WinEvent,则将获取前N个未过滤的事件,然后在powershell管道中过滤这N个事件。这不同于从事件日志的整个范围中获取N个事件,这些事件都与筛选器匹配。*where对象有什么问题?速度明显较慢。尤其是在通过大型安全系统时log@ScottWeinstein而且,可能是不正确的。如果指定MaxEvents来获取WinEvent,则将获取前N个未过滤的事件,然后在powershell管道中过滤这N个事件。这不同于从事件日志的整个范围中获取所有与筛选器匹配的N个事件。
$t1 = [datetime]::Today.AddDays(-1).ToUniversalTime().ToString('s')
$xpath = @"
    *[System[TimeCreated[@SystemTime>'$t1']]
     [EventID=4624]]
     [EventData[Data='Sens' and Data='Logoff']]
"@

Get-WinEvent -ComputerName myhostname -LogName Security -FilterXPath $xpath -MaxEvents 1