【问题标题】:Powershell: function parametersPowershell:函数参数
【发布时间】:2012-05-20 15:00:23
【问题描述】:

我正在构建一个 powershell 函数,以便我可以查询多台计算机的事件日志。我已经复制了下面需要帮助的代码。如果我不发送 eventID,我希望脚本找到所有事件 ID,我该如何实现?

#this would be the parameter part of the script
[String]$ComputerName = $env:COMPUTERNAME#Current computer 
[String[]]$EventLogNames=@("Application","System")#Main eventlogs 
[int[]]$EventIds = 1 #Event Ids 
[System.DateTime[]]$EventStartDate = (((Get-Date).addDays(-2)).date)#date 10 days ago 
[System.DateTime[]]$EventEndTime = (Get-Date)#date 10 days ago 

#This fits in the process section
$EventCritea = @{logname = $EventLogNames; StartTime=$EventStartDate; EndTime=$EventEndTime; ID=$EventIds}
Get-WinEvent -ComputerName $ComputerName -FilterHashTable $EventCritea  -ErrorAction SilentlyContinue

【问题讨论】:

    标签: events powershell event-viewer


    【解决方案1】:

    首先,您的另一个question 修复了$EventStartDate$EventEndTime 的类型。

    对于这个问题:逐步构建哈希表:

    $filter = @{logname = $EventLogNames; StartTime=$EventStartDate; EndTime=$EventEndTime}
    
    if ($EventIds -ne $null -and $EventIds.Length -gt 0) {
      $filter.ID=$EventIds
    }
    
    Get-WinEvent -ComputerName $ComputerName -FilterHashTable $filter #...
    

    【讨论】:

    • 感谢您的快速回复。很好用,我不知道你可以像这样添加到哈希表中:-)
    猜你喜欢
    • 2010-10-26
    • 2015-01-12
    • 2013-10-10
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2012-07-16
    相关资源
    最近更新 更多