2

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

Invoke-Command -ComputerName serverName -ScriptBlock {Get-Process} -Credential $credential

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

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

C:\Data\Shared\Installation

我想远程运行这个脚本。我在 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'.

只是需要一些帮助。谢谢。

编辑

在此处输入图像描述

编辑 2

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

4

1 回答 1

5

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

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

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

Invoke-Command -ComputerName serverName -ScriptBlock {C:\Data\Shared\Installation\Test.ps1} -Credential $credential
于 2013-02-07T21:44:16.697 回答