使用Win32_NTLogEvent进行CimSession

时间:2014-12-16 01:33:58

标签: powershell powershell-v3.0 event-log

我目前正在学习powershell,我正在尝试使用凭据从多个服务器(仅错误和警告)获取系统和应用程序事件日志。对于这个脚本中的其他东西,我已经能够使用带有Get-CimInstance的CimSession,但似乎它不适用于Win32_NTLogEvent。我也尝试过调查Get-WinEvent,但我不确定如何将其过滤到只有错误和警告。这基本上取代了以前的Get-Eventlog,除了现在需要凭证。

上一个代码:

Get-Eventlog -LogName System -ComputerName $server -EntryType error,warning -Newest 20
Get-Eventlog -Logname Application -ComputerName $server -EntryType error,warning -Newest 20

目前的尝试:

如上所述,我不知道如何使用Get-WinEvent过滤Get-Eventlog中的条目类型。

Get-WinEvent -LogName System -ComputerName $server -Credential $cred

使用Get-CimInstance我无法使用CimSession

Get-CimInstance -ClassName Win32_NTLogEvent`
-filter 'type="error" or type="warning" and (logfile="system" or logfile="application")'`
|Select-Object -first 20

这是因为Win32_NTLogEvent来自WMIObject还是有其他原因?还有其他我可以使用的东西吗?或者有什么东西我应该将Get-WinEvent加入?

1 个答案:

答案 0 :(得分:0)

当我将它用于远程服务器时,它不会单独工作。我发现使用Get-Eventlog可以通过PowerShell会话完美地完成。

$PSS= New-PSSession -computername $server -credential $cred
Invoke-command -session $PSS -scriptblock {Get-Eventlog -Logname Application -EntryType error,warning -Newest 20} 

也感谢无论是谁从负面投票,我很感激。而且我保证我不是在寻找积分或其他任何东西,我只是觉得在不给出理由的情况下投下一个问题是不礼貌的。