WINDOWS / HOW TO
批量远程执行 PowerShell
用一份设备列表和一个本机脚本,在多台 Windows 电脑上执行任务,并把结果保存回本机。
更新于
开始前准备
#这篇教程在本机 PowerShell 中调用 YaoDesk,将同一份脚本发送给设备列表中的 Windows 电脑执行。批量任务最多 200 台,命令任务同时处理 4 台。
- 安装 2026.1013.173 或以上版本,确认安装目录包含 YaoDesk.Cli.exe。
- 在主窗口登录并完成实名认证;目标电脑在线且允许命令行权限。
- 准备各台电脑的 9 位设备 ID 和访问密码。
- 在本机新建工作目录,将 hosts.json、task.ps1 和结果文件放在这个目录中。
以下命令都在这个工作目录的 PowerShell 终端运行;示例中的 ID、密码与路径需替换为实际信息。
设置程序路径
#默认安装路径如下。自定义安装时,改成实际路径;后续命令中的 $yao 指向这个程序。
$yao = "$env:LOCALAPPDATA\Programs\YaoDesk\YaoDesk.Cli.exe"准备设备列表
#把下面内容保存为 UTF-8 的 hosts.json。每个 ID 必须为 9 位数字且不能重复;name 可省略,方便在结果中区分设备。
[
{
"id": "123456789",
"password": "HostPasswordA",
"name": "办公室电脑"
},
{
"id": "987654321",
"password": "HostPasswordB",
"name": "开发测试机"
}
]--targets-file 不可与直接填写设备 ID 或 --password 混用。每台设备的密码写在对应的列表条目中。
准备要执行的脚本
#新建 task.ps1 并保存为 UTF-8。下面的脚本只查询时间、电脑名称与运行身份,适合先检查批量执行是否正常。
Get-Date
hostname
whoami将脚本内容替换为需要执行的操作后,再调用下一步命令。--script 指向本机文件,文件内容会发送给目标电脑执行。
执行批量任务
#读取同一目录下的设备列表与脚本,把命令超时设为 120 秒,并把逐台结果保存到本机 script-results.json。
& $yao controller powershell --targets-file '.\hosts.json' `
--script '.\task.ps1' --timeout 120 `
--output '.\script-results.json'该调用会等待任务结果。连接和清理还会占用额外时间;超时后应先查看结果与目标电脑状态,再决定是否重试。
查看结果与退出码
#紧接上一条命令读取退出码,并查看本机结果文件。退出码应在执行其他本机命令前读取。
$LASTEXITCODE
Get-Content -Raw '.\script-results.json'- 0 / 1
- 批量任务全部成功 / 存在失败。
- 2 / 3
- 输入、登录、认证或结果写入失败 / 已有另一组命令行任务正在执行。
- 124 / 130
- 超时或结果未知 / Ctrl+C 取消或主控账号变化。
以 JSON 中每台设备的 state、exitCode 和输出为准。一次只能运行一组命令行任务;未知或取消后不会自动重发,已经启动的远端程序可能继续运行。
常见问题
#批量任务失败,先检查哪里?
先查看结果文件中失败设备的状态,再检查设备是否在线、访问密码是否正确、主控登录与实名认证是否有效,以及目标电脑是否允许命令行权限。
脚本太长怎么办?
最终编码命令长度上限为 7000 字符。过长的脚本可先通过文件发送功能上传,再调用远端文件;具体参数见命令速查页。
可以只执行一台电脑吗?
可以。设备列表只保留一台,或在命令速查中使用单台 ID 与密码的 PowerShell 调用示例。