powershell - Invoke-Command 不带参数运行
问题描述
我正在尝试在 PowerShell 脚本中运行 Invoke-Command 以在远程服务器上运行脚本。它从 XML 文件中检索要运行的计算机名称和脚本。代码示例如下。脚本执行,但远程服务器上没有任何内容正在运行。我尝试了 2 种不同的方式来运行 Invoke-Command。
[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 }
我在调用命令时做错了什么?谢谢!
解决方案
您正在传递scriptblock
带有字符串的 a 。$scriptBlock
当它调用它时,它基本上和在你的终端中写一样的效果。您必须实际执行scriptblock
. 你可以使用Invoke-Expression
.
[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
.
[string] $computer = "lumen"
[scriptblock] $scriptBlock = { cd C:\Scripts\Update-Apps; ./Update-Apps }
$session = New-PSSession -ComputerName $computer
Invoke-Command -Session $session -ScriptBlock $scriptblock
它不一定是字符串。
推荐阅读
- python - 将 MiB/KiB 转换为 Hex '0x' 表示法并进行添加的脚本(Python)
- php - 在 DOM XPath 中获取数据属性链接的文本值
- java - 如何去除neo4j中map的属性?
- android - 自适应卡中的运行时数据处理
- tensorflow - 为什么我的 Keras 图像分类预测总是返回一个值...?
- dpdk - DPDK pktgen run.py 错误 - 未找到配置文件“默认”
- jquery - 使用jquery单击复选框内的列时添加行跨度
- google-admin-sdk - 如何通过 google API 获取 Gsuite 帐户类型
- javascript - dagre-d3- 使长文本适合节点内
- laravel - 流明交易