无法从远程服务器上的UNC路径运行PS脚本

时间:2019-02-01 14:43:38

标签: powershell

我正在尝试从服务器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之类的解决方案将不起作用。我还需要从命令行(而不是从脚本)运行它。

2 个答案:

答案 0 :(得分:0)

三件事:

  1. 没有理由在PowerShell中调用powershell.exe。呼叫操作员&
  2. 调用脚本
  3. 请注意双跳问题。如果通过网络登录连接到远程计算机,则无法从此远程连接到另一台远程计算机(此处为网络共享)进行身份验证。
  4. 改为使用Invoke-Command -FilePath C:\PSScript.ps1 -ComputerName 10.11.12.13。因此,您不必事先将文件复制到每台远程计算机。

答案 1 :(得分:0)

最后可以使用它:

generate_document()

仍然会想找出如何在ScriptBlock中运行它的