首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Invoke-Command不带参数运行

Invoke-Command不带参数运行
EN

Stack Overflow用户
提问于 2021-05-05 04:53:03
回答 1查看 36关注 0票数 1

我正在尝试在PowerShell脚本中运行Invoke-Command,以便在远程服务器上运行脚本。它从XML文件中检索要运行的计算机名称和脚本。代码示例如下。脚本会执行,但远程服务器上的任何内容都未运行。我尝试了两种不同的方法来运行Invoke-Command。

代码语言:javascript
复制
[string] $computer = "lumen"
[string] $scriptBlock = "cd C:\Scripts\Update-Apps; ./Update-Apps"

$session = New-PSSession -ComputerName $computer
Invoke-Command -Session $session -ScriptBlock { $scriptBlock }

#Invoke-Command -ComputerName $computer -ScriptBlock { $scriptBlock }

我用Invoke-Command做错了什么?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-05-05 05:08:27

您正在传递一个带有字符串的scriptblock。当它调用它时,它基本上具有与在终端中编写$scriptBlock相同的效果。您必须实际执行scriptblock中的字符串。您可以使用Invoke-Expression

代码语言:javascript
复制
[string] $computer = "lumen"
[scriptblock] $scriptBlock = { "cd C:\Scripts\Update-Apps; ./Update-Apps" | Invoke-Expression }

$session = New-PSSession -ComputerName $computer
Invoke-Command -Session $session -ScriptBlock $scriptblock

或者,您可以在scriptblock中将命令直接编写为PowerShell代码。

代码语言:javascript
复制
[string] $computer = "lumen"
[scriptblock] $scriptBlock = { cd C:\Scripts\Update-Apps; ./Update-Apps }

$session = New-PSSession -ComputerName $computer
Invoke-Command -Session $session -ScriptBlock $scriptblock

它不一定是字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67392068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档