我原本以为获取 WinEvent无法在 Windows 2003 上执行,即源计算机必须是 Vista 或更高版本的操作系统。但是,它可以在 Vista+ 计算机上针对 Windows 2003 运行。看来情况并非如此 - 我尝试了以下选项:
- 将 Windows 7 中的 Get-WinEvent 迁移到另一个域中的 Windows 2003。
- 将 Get-WinEvent 从 Windows 2008 R2 迁移到同一域中的 Windows 2003。
两者都显示此错误:
There are no more endpoints available from the endpoint mapper
在上述每种情况下,都可以使用以下方法成功提取事件日志条目获取事件日志.runas /netonly /user:xxx powershell
需要连接到另一个域。
这是否意味着源机器和目标机器都必须是 Vista+ 或者这个错误与 Get-WinEvent 兼容性无关?
答案1
Get-WinEvent 针对 Vista 和更新操作系统的事件日志。事件日志基础结构当时已重建,并允许进行更高级的查询。Server 2003 及更早版本不支持此类查询机制。Get-WinEvent 还可以针对 Windows 事件跟踪 (ETW) 生成的新事件日志。
Get-EventLog 可以用于旧操作系统和新操作系统,但无法访问新日志,也不支持相同的查询功能。(而且根据我的经验,其执行速度比 Get-WinEvent 慢。)
您应该能够从任何支持 PowerShell V2 的客户端计算机使用 Get-WinEvent,但事件日志的来源必须是 Vista 或更新版本。 客户端和服务器都必须是 Vista 或更新版本。