运行以下ps1,但datetime参数正在出错。
调试显示日期正确($ earlydate =我输入的日期)
正在传递HostIP参数,因此传递日期时间似乎有一个特殊的技巧,我不知道。
我收到的错误是:
无法验证参数' After'之后的参数。参数为null或 空。提供一个非null或空的参数,然后尝试 再次命令。
非常感谢任何帮助。
param(
[Parameter(Mandatory=$True)]
[string]$HostIP,
[Parameter(Mandatory=$True)]
[datetime]$earlydate,
[Parameter(Mandatory=$True)]
[datetime]$latedate
)
Invoke-Command {Get-EventLog Security -After $earlydate -Before $latedate} -ComputerName $HostIP |
Export-Csv c:\Events\$HostIP.csv
答案 0 :(得分:1)
Invoke-Command {Get-EventLog Security -After $using:earlydate -Before $using:latedate}
$ earlydate& $ latedate变量在您的机器上定义,而不是在远程机器上定义。远程机器不会自动继承变量,因此远程机器上的变量将为空。
答案 1 :(得分:0)
您的脚本正在寻找日期时间类型,我想您正在传递一个字符串。如果要传入字符串,请将其转换为函数内的datetime,否则传入datetime对象,例如:
(Get-Date -year 2017 -month 9 -day 15)