首页/系统/Windows 运维速查/Invoke-Command 批量远程执行
本包目录(413 条)

Invoke-Command 批量远程执行

最常用的远程执行:-ComputerName 列表批量跑脚本块、-FilePath 跑脚本文件、-ArgumentList 传参,结果自带 PSComputerName。

Windows 运维速查系统更新于 2026-10-12
用途批量/单机远程执行命令与脚本
语法Invoke-Command -ComputerName a,b -ScriptBlock {...} [-ThrottleLimit N]
结果输出对象带 PSComputerName 列,可 Group/导出

常用示例

常用示例
$hosts = 'app01','app02','app03'
Invoke-Command -ComputerName $hosts -ScriptBlock { Get-Service -Name W3SVC | Select-Object Status, StartType } | Select-Object PSComputerName, Status, StartType
Invoke-Command -ComputerName $hosts -FilePath .\deploy.ps1 -ArgumentList 'v1.2'
# 错误收集
Invoke-Command -ComputerName $hosts -ScriptBlock { throw 'test' } -ErrorVariable errs -ErrorAction SilentlyContinue
$errs.Count
并发默认 32:大集群用 -ThrottleLimit 与 -Session 复用控制负载。

易错点

  • 目标机没开 WinRM/防火墙没放行会整批失败,先小范围试探
  • 脚本块里引用外部变量要用 -ArgumentList 或 $using: 明确传入

数据来源与参考

  • Microsoft Learn:Invoke-Command

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌