我正在尝试从服务器B(10.11.12.13)上的服务器A运行以下PS命令,该命令应该在本地但从UNC路径运行PS脚本。所以我有:
Invoke-Command -ComputerName 10.11.12.13 -Credential $cred -ScriptBlock {powershell.exe -ExecutionPolicy Bypass "\\netshare\PSScript.ps1"}
输入凭据后,它会失败并显示错误:
*\\netshare\PSScript.ps1 : The term '\\netshare\Powershell\PSScript.ps1' is not recognized as
+CategoryInfo: NotSpecified: (\\netshare\Pow... recognized as :String) [],
RemoteException
+FullyQualifiedErrorId: NativeCommandError
+PSComputerName: 10.11.12.13*
在我的命令中,如果我用本地路径(例如C:\ files \ PSScript.ps1)替换unc路径,则运行正常。
远程服务器正在运行PS v4。我已经运行了命令: 在服务器B上不受限制的设置ExecutionPolicy。我还尝试在“绕过”之后添加-File,但这也会失败,并出现其他错误。
如何从服务器B运行该脚本?先将脚本复制到服务器B之类的解决方案将不起作用。我还需要从命令行(而不是从脚本)运行它。
答案 0 :(得分:0)
三件事:
powershell.exe
。呼叫操作员&
Invoke-Command -FilePath C:\PSScript.ps1 -ComputerName 10.11.12.13
。因此,您不必事先将文件复制到每台远程计算机。答案 1 :(得分:0)
最后可以使用它:
generate_document()
仍然会想找出如何在ScriptBlock中运行它的
。