在 Get-Winevent 中将变量传递给哈希表中的 lognam

艾伦

我正在尝试更改Get-EventLogs用于使用的函数Get-WinEvent理想情况下,我希望有一个可以每天运行的函数,只需更改一些变量即可扫描不同的日志。

我运行了基本代码,但是当我将其转换为函数时,我无法将变量传递给哈希表中的 LogName。我尝试了不同的引号组合,但没有运气。

我得到日志不存在的错误,只有“-”出现在错误中。

function Check-Eventlogs-v2 {
    Param(
        [Parameter(Mandatory=$true)][string]$Type
        #,[string]$Type
        #,[datetime] $date
        ,[int32]$eventtype
        ,[string]$box
    )

    if ($Type -ne '') {
        $servers = Get-Content -LiteralPath "C:\temp\sql_servers3.txt"
        $Date = (Get-Date).AddDays(-1)

        $log = foreach ($box in $servers) {
            Get-WinEvent -Computername $box -LogName = Application -FilterHashTable @{
                Logname   = $Type;
                level     = $eventtype;
                starttime = $Date
            } | Where-Object {
                ($_.Id -ne "2006" -and
                $_.Id -ne "1008" -and
                $_.Id -ne "12289" -and
                $_Logname -eq $Type)
            } | Select-Object @{n='HostName';e={($_.MachineName -split '\.')[0]}}, timecreated, id, message
        }
    } else {
        Write-Warning "'$Type' is not a valid log type."
    }
    return $log
}
Ctznkane525

试试这个。从过滤器中删除 LogName,并放置一个 ToString 匹配项。您在 Where-Object 中的 LogName 参考中也有一个错字。

$log = foreach ($box in $servers) {
            Get-WinEvent -Computername $box -LogName = Application -FilterHashTable @{
                level     = $eventtype;
                starttime = $Date
            } | Where-Object {
                ($_.Id -ne "2006" -and
                $_.Id -ne "1008" -and
                $_.Id -ne "12289" -and
                $_.Logname.ToString() -eq $Type)
            } | Select-Object @{n='HostName';e={($_.MachineName -split '\.')[0]}}, timecreated, id, message
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Get-WinEvent脚本

Get-WinEvent 与匹配 TimeCreated

如何使用 Get-EventLog 在 PowerShell 中获得与 Get-WinEvent 相同的结果?

Powershell - Get-WinEvent 替换文本

使用Get-WinEvent检索用户名

如何使用Get-WinEvent cmdlet获取最新日志?

Get-WinEvent 搜索所有错误

Powershell过滤来自Get-WinEvent的输出数据

PsExec with Get-WinEvent: 系统找不到指定的文件

使用 PowerShell Get-WinEvent 或 Get-WMIObject 查询 Windows 更新错误

使用 Get-WinEvent 查询忽略来自特定来源的特定事件 ID

从 Powershell Get-WinEvent 分组和选择前 1 个事件

PowerShell,Get-WinEvent -FilterHashTable ID和数组的怪异行为

PowerShell Get-Winevent按关键字和提供程序名称的问题

PowerShell Get-WinEvent仅显示Message属性的第一行吗?

使用Get-WinEvent进行多台计算机的日志监视

get-winevent 输出到文件被存储为二进制文件

Powershell - Get-WinEvent - 发送带有来自事件的消息的电子邮件

在Laravel 4中将变量(get)传递给route-> Controller-> View时,我丢失了引导程序样式

将GET变量传递给PHP中的shell_exec

如何在改造中将变量传递到GET参数中

Power BI将参数值传递给get数据中的python脚本变量

将变量传递给file_get_html在简单DOM中不起作用

在Django中将标头值传递给get请求

在get查询中将参数传递给vue js?

在Laravel测试中将参数传递给GET请求

如何在Django中将参数传递给get_queryset

Django:使用 GET 将额外变量传递给 LoginView?

将变量传递给Get-Member的“必须指定对象”