远程Powershell脚本计划任务

我无法将Powershell脚本作为计划任务运行。 该脚本远程login到两台Hyper-V主机,查询复制状态并将结果通过电子邮件发回给我。 当我手动运行它时,脚本可以正常运行,无论是在Powershell ISE中,还是通过直接运行脚本,但是当我将它作为计划任务运行时,任务会停留在运行状态,我从来没有得到结果。

我已经检查了我的计划任务安装程序正常工作,只需将文本文件写入本地文件夹即可。 我也以同样的用户身份login,当我手动运行脚本的时候运行任务,所以没有,我错过了什么?

这是我的脚本:

$array = @("host1.domain.com", "host2.domain.com") for ($i=0; $i -lt $array.length; $i++) { $pass = cat C:\Scripts\Creds.txt | convertto-securestring $mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "username",$pass Invoke-Command -ComputerName $array[$i] -Credential $mycred -FilePath "C:\Scripts\Check_VMReplication.ps1" } 

该脚本在相同的文件夹中调用另一个脚本:

 $hstname = Hostname $Replication = Get-VMReplication $MessageFail = $hstname + ' Replication Alert' $SmtpServer = 'smtp.server.com' hostname > C:\Scripts\iveremoted.txt for ($i=0; $i -lt $Replication.length; $i++) { $MessageBody = $hstname+ " has reported a replication status of " + $Replication.health[$i] + ' for server ' + $Replication.name[$i] $FailMessageSubject = $Replication.name[$i] + " Replication Alert" if ($Replication.health[$i] -ne 'Normal') { send-mailmessage -to "[email protected]>" -from '[email protected]' -subject $MessageFail -body $MessageBody -smtpServer $SmtpServer } else{ send-mailmessage -to "[email protected]" -from '[email protected]' -subject 'Everything's OK' -body $MessageBody -smtpServer $SmtpServer } } 

该脚本似乎无法login,因为iveremoted.txt文件未写入远程计算机。

任何想法,我可能错过了?

我不知道为什么,但如果我使用运行Check_VMReplication.ps1代码

 Invoke-Command -Credential $mycred -ScriptBlock {CODE GOES HERE} 

而不是第二个脚本文件,它运行良好。 我想我必须这样做。