PowerShell 在不同的路径上运行远程命令

Var*_*rma 2 powershell remoting path

通过执行以下操作,我可以从本地计算机向不同域中的服务器运行远程 powershell 命令:

Invoke-Command -ComputerName serverName -ScriptBlock {Get-Process} -Credential $credential
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,它在此默认目录中运行 - c:\users\username\documents

我的实际情况略有不同。我有一个 powershell 脚本 ( Test.ps1) 坐在这里:

C:\Data\Shared\Installation
Run Code Online (Sandbox Code Playgroud)

我想远程运行这个脚本。我在 ScriptBlock 中尝试了不同的东西,但它总是出错。看起来像一个语法问题。例如我试过这个:

Invoke-Command -ComputerName serverName -ScriptBlock {cd "C:\Data\Shared\Installation" ./Test.ps1} -Credential $credential

但这给出了以下错误

A positional parameter cannot be found that accepts argument './Test.ps1'.
Run Code Online (Sandbox Code Playgroud)

只是需要一些关于这方面的帮助。谢谢。

编辑

在此处输入图片说明

编辑 2

是的,感谢您的评论(现在已经消失了) - 在路径工作后放置一个分号。谢谢您的帮助。

Fro*_* F. 5

如果需要在脚本块中运行多个命令,则需要使用换行符或分号将它们分开;。尝试:

Invoke-Command -ComputerName serverName -ScriptBlock {cd "C:\Data\Shared\Installation"; ./Test.ps1} -Credential $credential
Run Code Online (Sandbox Code Playgroud)

或者试试这个(如果你的脚本使用相对路径,这不是一个好的解决方案):

Invoke-Command -ComputerName serverName -ScriptBlock {C:\Data\Shared\Installation\Test.ps1} -Credential $credential
Run Code Online (Sandbox Code Playgroud)