首页 > 解决方案 > 如何使用 Get-EventLog 在 PowerShell 中获得与 Get-WinEvent 相同的结果?

问题描述

我正在使用 Windows Server 2003,我需要使用此命令获得类似以下内容Get-WinEvent -ListLog Application, Security, System

LogMode   MaximumSizeInBytes RecordCount LogName
-------   ------------------ ----------- -------
Circular            33554432       15188 Application
Circular           201326592      298459 Security
Circular            33554432       10074 System

我需要该属性的结果,MaximumSizeInBytesGet-WinEvent在 Server 2003 上不受支持

我看到Get-EventLog有一个名为的属性,MaximumKilobytes但我得到的结果不同

我想知道是否有一个命令可以在本地运行以获得相同的结果

标签: powershellwindows-server-2003

解决方案


首先,你为什么还在 WS2K3 上?--- ;-} 在你回应之前,我知道,我知道,有些组织......对吧!?;-}

然而,除非该站点上的某个人拥有 WS2K3,否则他们无法验证内容。

WS2K3 不支持的这个 cmdlet 不是错误或缺失的东西。cmdlet 是特定于操作系统版本和 PowerShell 版本的。

说了这么多。仅仅因为您的系统上不存在命令,并不意味着您不能尝试使用它。

这就是存在隐式 PSRemoting 的原因。

远程处理隐式方式

使用隐式 PowerShell 远程处理导入远程模块

大多数情况下,您会看到这用于 ADDS、Exchange、O365 cmdlet 等,但您可以对远程主机上的任何模块/cmdlet 执行此操作,以在本地会话中使用。使用隐式远程处理 cmdlet 确实不能在您的系统上运行,它被代理了。请务必使用 -prefix 参数,以免最终列出重复的 cmdlet。

例子

$RemoteSession = New-PSSession -ComputerName 'RemoteHost' -Credential (Get-Credential -Credential "$env:USERDOMAIN\$env:USERNAME")
Import-PSSession -Session $RemoteSession -Prefix RS

因此,不,当您想使用该会话中的一个时,您使用前缀调用 cmdlet。

Get-RSWinEvent

现在,正如我所说,我没有 WS2K3 盒子可以搞乱,因为我都是 WS2K12R2/16/19。然而,试一试。


推荐阅读