YaoDesk使用教程

WINDOWS / HOW TO

批量远程执行 PowerShell

用一份设备列表和一个本机脚本,在多台 Windows 电脑上执行任务,并把结果保存回本机。

本机终端:PowerShell客户端:2026.1013.173 及以上

更新于

开始前准备

#

这篇教程在本机 PowerShell 中调用 YaoDesk,将同一份脚本发送给设备列表中的 Windows 电脑执行。批量任务最多 200 台,命令任务同时处理 4 台。

  1. 安装 2026.1013.173 或以上版本,确认安装目录包含 YaoDesk.Cli.exe。
  2. 在主窗口登录并完成实名认证;目标电脑在线且允许命令行权限。
  3. 准备各台电脑的 9 位设备 ID 和访问密码。
  4. 在本机新建工作目录,将 hosts.json、task.ps1 和结果文件放在这个目录中。

以下命令都在这个工作目录的 PowerShell 终端运行;示例中的 ID、密码与路径需替换为实际信息。

设置程序路径

#

默认安装路径如下。自定义安装时,改成实际路径;后续命令中的 $yao 指向这个程序。

PowerShell
$yao = "$env:LOCALAPPDATA\Programs\YaoDesk\YaoDesk.Cli.exe"

准备设备列表

#

把下面内容保存为 UTF-8 的 hosts.json。每个 ID 必须为 9 位数字且不能重复;name 可省略,方便在结果中区分设备。

JSON · hosts.json
[
  {
    "id": "123456789",
    "password": "HostPasswordA",
    "name": "办公室电脑"
  },
  {
    "id": "987654321",
    "password": "HostPasswordB",
    "name": "开发测试机"
  }
]
下载设备列表模板 ↓

--targets-file 不可与直接填写设备 ID 或 --password 混用。每台设备的密码写在对应的列表条目中。

准备要执行的脚本

#

新建 task.ps1 并保存为 UTF-8。下面的脚本只查询时间、电脑名称与运行身份,适合先检查批量执行是否正常。

PowerShell · task.ps1
Get-Date
hostname
whoami

将脚本内容替换为需要执行的操作后,再调用下一步命令。--script 指向本机文件,文件内容会发送给目标电脑执行。

执行批量任务

#

读取同一目录下的设备列表与脚本,把命令超时设为 120 秒,并把逐台结果保存到本机 script-results.json。

PowerShell
& $yao controller powershell --targets-file '.\hosts.json' `
  --script '.\task.ps1' --timeout 120 `
  --output '.\script-results.json'

该调用会等待任务结果。连接和清理还会占用额外时间;超时后应先查看结果与目标电脑状态,再决定是否重试。

查看结果与退出码

#

紧接上一条命令读取退出码,并查看本机结果文件。退出码应在执行其他本机命令前读取。

PowerShell · 查看结果
$LASTEXITCODE
Get-Content -Raw '.\script-results.json'
0 / 1
批量任务全部成功 / 存在失败。
2 / 3
输入、登录、认证或结果写入失败 / 已有另一组命令行任务正在执行。
124 / 130
超时或结果未知 / Ctrl+C 取消或主控账号变化。

以 JSON 中每台设备的 state、exitCode 和输出为准。一次只能运行一组命令行任务;未知或取消后不会自动重发,已经启动的远端程序可能继续运行。

常见问题

#

批量任务失败,先检查哪里?

先查看结果文件中失败设备的状态,再检查设备是否在线、访问密码是否正确、主控登录与实名认证是否有效,以及目标电脑是否允许命令行权限。

脚本太长怎么办?

最终编码命令长度上限为 7000 字符。过长的脚本可先通过文件发送功能上传,再调用远端文件;具体参数见命令速查页。

可以只执行一台电脑吗?

可以。设备列表只保留一台,或在命令速查中使用单台 ID 与密码的 PowerShell 调用示例。