Powershell Remoting:在脚本中加载本地脚本

时间:2017-11-23 22:58:36

标签: powershell powershell-remoting

我使用以下命令在远程计算机上启动本地脚本:

Invoke-Command -ComputerName RemoteServer -FilePath C:\myFolder\Script1.ps1

此脚本点源另一个脚本( Script2 ),该脚本也位于我的本地计算机上的C:\ myFolder"中。此操作失败,因为 Script1 尝试从远程计算机加载 Script2

有没有办法从远程会话中的 Script1 中的本地计算机加载 Script2

2 个答案:

答案 0 :(得分:1)

我不认为这可以按照您概述的方式工作,因为在远程计算机上运行的代码无法找到与本地计算机相关的文件。

实现此目的的唯一方法是共享您的脚本并将其包含在UNC路径或管理共享中,例如\\localmachine\c$\users\test\script\a.ps1。 但是,您可能会遇到身份验证问题(双跳)。

(最简单)解决方案:首先将所有脚本复制到远程计算机,并确保脚本中使用的路径能够正常工作。

答案 1 :(得分:1)

[解决方法]

  1. 创建与远程服务器的会话
  2. 使用会话加载script2
  3. 使用相同的会话来运行script1。
  4. 例如: - $Session = New-PSSession -ComputerName $Server

    Invoke-command -Session $Session -FilePath <script2>这应该加载函数

    Invoke-command -Session $Session -FilePath <script1>

    此处script2中的功能可供script1使用,因此无需引荐和点源script2