2017-09-15 1 views
0
에 전달했습니다.

다음 ps1을 실행하지만 datetime 매개 변수가 오류로 다시 나타납니다.PowerShell 5에서 Datetime 매개 변수를

디버그는 내가 모르는 날짜를 통과에 필요한 특별한 비결이있는 것 같다, 그래서 날짜가 HostIP 매개 변수가 전달되는 (I 입력 $ earlydate = 날짜)

올바른 보여줍니다.

I 나타나는 오류는 다음과 같습니다

는 '후'매개 변수에 인수를 확인할 수 없습니다. 인수가 널이거나 이 비어 있습니다. 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 

답변

1
Invoke-Command {Get-EventLog Security -After $using:earlydate -Before $using:latedate} 

$ earlydate & $ latedate 변수가없는 원격 시스템에 시스템에 정의됩니다 : 당신이 문자열을 전달하고자하는 함수 내부 날짜로 변환 할 경우 그렇지 않은 경우 같은 날짜 객체를 전달합니다. 원격 시스템은 변수를 자동으로 상속하지 않으므로 원격 시스템의 변수는 null입니다.

+0

완벽! 이 작품은 너무 빨리 응답 너무 많이 주셔서 감사합니다! –

0

스크립트에서 datetime 형식을 찾고 문자열을 전달할 것으로 생각됩니다.

(Get-Date -year 2017 -month 9 -day 15) 
+0

John에 응답 해 주셔서 감사합니다. 다른 질문에서이 옵션을 살펴 봤지만 제대로 작동하지 않습니다. PowerShell을 계속 배우면서 내 노트에 분명히 들어가 있습니다. –

관련 문제