【发布时间】:2014-08-16 11:01:20
【问题描述】:
我这里有这段代码:
$currentDate = get-date
$pastDate = $currentDate.addhours(-5)
$errorCommand = get-eventlog -Before $currentDate -After $pastDate -logname Application -source "ESENT"
$errorInfo = $errorCommand | out-string
我有一台运行整个脚本的本地机器,它可以 100% 正常工作。 当我通过远程桌面在 Windows Server 标准上运行此代码时,我得到以下信息:
"Get-EventLog : 找不到与参数名称 'before' 匹配的参数" 它指的是“$errorCommand =”,我一生都无法弄清楚为什么它找不到这个参数,是不是我的 powershell 设置不正确?
【问题讨论】:
-
Get-EventLogcmdlet 是否有可能被重新定义?有人可以用自己的函数覆盖内置 cmdlet。 -
@iCodez 是的,可能是这样。当我在 Get-EventLog 上获得帮助时,没有提及之前或之后的参数,实际上似乎很多都丢失了。我想我将不得不找到其他方法来实现与我的脚本相同的效果,但以不同的方式......编辑:也许某种涉及 -newest 的混合物可以解决我的问题。
-
执行
Get-Command Get-EventLog并查看 ModuleName 是否为 Microsoft.PowerShell.Management,或者是否列出了多个。 -
@TheMadTechnician 执行此操作后,我得到标题“命令类型、名称和定义”,没有提及 Microsoft.powershell.management