0

我在客户端计算机中有这个脚本,它尝试从服务器计算机运行脚本:

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"

但我得到了错误

写入错误:找不到接受参数“System.Management.Automation.ItemNotFoundException”的位置参数:找不到路径“C:\release1.ps1”,因为它不存在。

4

1 回答 1

2

-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
于 2013-04-24T14:40:26.403 回答