2016-12-14 97 views
0

這裏是代碼:PowerShell的傳遞日期時間變量設定日期

$computerList = "localhost", "luna" 
$user = Get-Credential powershell 
$date = Get-Date 
foreach ($computer in $computerList) { 
    if ($computer -eq "localhost") { $session = New-PSSession -ComputerName $computer } 
    else { $session = New-PSSession -ComputerName $computer -Credential $user } 
    Invoke-Command -Session $session -ScriptBlock { 
     Set-Date -Date $date 
    } 
} 

我得到這個錯誤:

Cannot bind argument to parameter 'Date' because it is null. 

通過它的工作原理線console線工作,但運行腳本變量$時日期爲空,就像錯誤說的那樣。 爲什麼變量$ date爲空?

回答

0

它不應該工作無論哪種方式,在遠程會話中執行命令時,你指的是局部變量,你應該調用這樣的變量:

Invoke-Command -Session $session -ScriptBlock { 
    Set-Date -Date $using:date 
} 

More on remote variable

+0

太棒了!它現在有效。 – Overkill