我在客户端计算机中有这个脚本试图从服务器计算机运行脚本:
try {
$s = New-PSSession -ComputerName "name" -Authentication CredSSP -Credential $credential
Enter-PSSession -Id $s.Id
Set-ExecutionPolicy ByPass -Scope CurrentUser
Invoke-Command -Session $s -FilePath c:\release1.ps1
} catch {
Write-Error "Error occurred: " $_.Exception.ToString()
} finally {
Exit-PSSession
Remove-PSSession $s }
服务器中的脚本就是这样的
Set-Alias vmrun "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
Start-Process -NoNewWindow -FilePath vmrun -ArgumentList " -T ws revertToSnapshot M:\myvm.vmx Release1"
但是我收到了错误
Write-Error:找不到接受参数'System.Management.Automation.ItemNotFoundException的位置参数:不能 找到路径'C:\ release1.ps1',因为它不存在。
答案 0 :(得分:0)
-FilePath
必须指定本地计算机上文件的路径。该文件在本地读取,然后作为代码块传递给远程计算机。
请参阅http://technet.microsoft.com/en-us/library/hh849719.aspx:
在一台或多台远程计算机上运行指定的本地脚本。输入脚本的路径和文件名,或将脚本路径传递给Invoke-Command。 脚本必须驻留在本地计算机上或本地计算机可以访问的目录中。使用ArgumentList参数指定脚本中参数的值。
解决方案是将release1.ps1
放在本地计算机上。或者,如果它必须位于远程计算机上,则将其放入本地计算机可访问的共享中,并使用UNC路径访问它。
Invoke-Command -Session $s -FilePath \\name\share\release1.ps1