我使用以下命令在远程计算机上启动本地脚本:
Invoke-Command -ComputerName RemoteServer -FilePath C:\myFolder\Script1.ps1
此脚本点源另一个脚本( Script2 ),该脚本也位于我的本地计算机上的C:\ myFolder"中。此操作失败,因为 Script1 尝试从远程计算机加载 Script2 。
有没有办法从远程会话中的 Script1 中的本地计算机加载 Script2 ?
答案 0 :(得分:1)
我不认为这可以按照您概述的方式工作,因为在远程计算机上运行的代码无法找到与本地计算机相关的文件。
实现此目的的唯一方法是共享您的脚本并将其包含在UNC路径或管理共享中,例如\\localmachine\c$\users\test\script\a.ps1
。
但是,您可能会遇到身份验证问题(双跳)。
(最简单)解决方案:首先将所有脚本复制到远程计算机,并确保脚本中使用的路径能够正常工作。
答案 1 :(得分:1)
[解决方法]
例如: - $Session = New-PSSession -ComputerName $Server
Invoke-command -Session $Session -FilePath <script2>
这应该加载函数
Invoke-command -Session $Session -FilePath <script1>
此处script2
中的功能可供script1
使用,因此无需引荐和点源script2
。