我在使用远程服务器上的powershell从主脚本调用子脚本时遇到问题 我有一个主要的脚本,它是调用1.ps1 另一个脚本叫做2.ps1
以下是脚本
1.ps1 contains this code &("C:\Users\test\Desktop\remotely run scripts\2.ps1")
2.ps1 contains this code new-item -type file c:\itworksagain.txt
我按如下方式运行命令:
invoke-command -computer "remoteServer" -filepath "C:\Users\test\Desktop\remotely run scripts\1.ps1"
我收到错误
The term 'C:\Users\test\Desktop\remotely run scripts\2.ps1 is not recognized as the name of a cmdlet, function, ...
答案 0 :(得分:0)
我之前应该注意到这一点。脚本中有以下内容
&("C:\Users\test\Desktop\remotely run scripts\2.ps1")
该行中的括号告诉PowerShell运行一个名为"C:\Users\test\Desktop\remotely run scripts\2.ps1"
的子表达式,它不是cmdlet,exe ....等。
我认为如果将行更改为以下内容,可能会解决您的问题。
& "C:\Users\test\Desktop\remotely run scripts\2.ps1"
从评论中更新
你的第一个脚本调用第二个脚本。 invoke
命令在远程服务器上运行第一个命令。在远程服务器上执行的脚本调用第二个脚本。呼叫始发于远程服务器,因此呼叫相对于该服务器。它正在远程服务器上查找2.ps1
。您需要将该脚本移动到中心位置,然后使用powershell支持的UNC路径从第一个脚本中调用它。对于测试,您可以将2.ps1
移动到远程服务器,它应该可以工作。