PsTools 学习笔记(7.8):远程连接选项——连接性、超时、会话与安全基线
PsTools 学习笔记(7.8):远程连接选项——连接性、超时、会话与安全基线
- PsTools 学习笔记(7.8):远程连接选项——连接性、超时、会话与安全基线
- 1)PsExec 远程连接的“底层通路”与前置条件
- 2)远程常用选项速览(牢记这些就够用)
- 3)慢链路/高丢包场景:稳态参数组合
- A. “可靠优先”(一次到位)
- B. “交互诊断”(看得见)
- C. “差分热修”(最小带宽)
- 4)会话与可见性:`-i`、`-h`、`-x` 的配合
- 5)安全基线与凭据建议
- 6)常见故障速修表
- 7)脚手架模版(复制改参即可)
PsTools 学习笔记(7.8):远程连接选项——连接性、超时、会话与安全基线
本篇聚焦 PsExec 的远程连接参数 与 稳定性/安全性实战:连接通路、端口与前提、超时与会话、慢链路调参、常见报错速修。
1)PsExec 远程连接的“底层通路”与前置条件
通路原理(简述)
- 通过 ADMIN$(C:\Windows)共享 把
psexesvc.exe复制到远端; - 调用 SCM(服务控制管理器) 在远端创建/启动
psexesvc; - 由该服务托管你的命令/进程,完事后可删除服务与残留文件。
必须满足
-
远端主机开启 File and Printer Sharing(SMB 对外 445/TCP)。
-
可访问 服务控制管理器(RPC 135/TCP + 动态高端口,建议放行“远程服务管理”预设规则)。
-
管理员权限(域管理员/本地管理员),且远端的 UAC 远程限制 未阻断本地帐户:
Workgroup 环境常需:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ^/v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f(仅在受控环境临时启用,用完可删/置 0)
-
ADMIN$ 未被策略禁用;
Server服务已启动:sc query lanmanserver | find "RUNNING" || net start server
2)远程常用选项速览(牢记这些就够用)
| 选项 | 作用 | 典型用法/提示 |
|---|---|---|
\\host / @list.txt | 指定单机或清单批量 | 清单一行一个主机 |
-u user -p pass | 指定凭据 | domain\user 或 .\Administrator |
-n N | 连接超时(秒) | 慢链路设大一点,如 -n 60 |
-c | 复制本地程序到远端再执行 | 配合 -f 覆盖、-v 仅高版本覆盖 |
-r name | 自定义远端服务名 | 多实例并行或与安全策略兼容 |
-i [session] | 交互到指定会话 | RDS 多会话时必带会话号 |
-h | 高权限令牌(Vista+) | 搭配 -i 让 UI 真正可见 |
-d | 不等待进程结束 | 后台投递 |
-w dir | 指定工作目录 | 影响相对路径/日志落地 |
-a n,m | 亲和性;-low/-high 等 | 见 7.7 篇:性能选项 |
示例
psexec \\app-01 -u domain\op -p ***** -n 45 -c -v -w C:\ops job.exe -arg1 -arg2
3)慢链路/高丢包场景:稳态参数组合
A. “可靠优先”(一次到位)
psexec \\edge-01 -n 90 -c -f -v -r psexec_opsvc -d ^-w C:\ops\pkg deploy.exe /silent /log C:\ops\log\deploy.log
-n 90:拉长连接超时-c -f -v:复制并强制覆盖、仅高版本覆盖-r:自定义服务名,便于排障与多进程并存-d:后台执行,避免链路抖动导致等待失败
B. “交互诊断”(看得见)
psexec \\rdp-02 -n 60 -i 2 -h cmd.exe
-i 2:绑定到会话 2(RDS/多用户环境)-h:UAC 高权限令牌,UI 真正出现给该会话用户
C. “差分热修”(最小带宽)
psexec \\branch-05 -n 75 -c patch.dll -v rundll32.exe patch.dll,Entry
-v:仅当远端版本更低时才复制,节省带宽
4)会话与可见性:-i、-h、-x 的配合
-
Session 0 隔离:服务在 Session 0,用户桌面在 1/2/…
-
要让 UI 真出现在用户桌面:
- 指定 会话号:
-i <sessionId>(query session可查) - 提升 UI 权限:
-h(Vista+ 环境) - 需要安全桌面时:
-x(在 Winlogon 安全桌面显示,对口令框等场景)
- 指定 会话号:
示例
psexec \\ts-01 -i 1 -h -x control.exe /name Microsoft.WindowsUpdate
5)安全基线与凭据建议
-
少用
-p 明文:优先用当前已登录的域身份,或:runas /netonly启动一个会话,再在该会话内执行 PsExec;- 或使用
cmdkey预存凭据(同样注意泄露风险)。
-
最小权限:仅授予目标主机的本地管理员或所需的精确权限。
-
临时放行:防火墙与
LocalAccountTokenFilterPolicy仅在任务窗口内放开;事后回收。 -
日志留痕:开启 Sysmon/SIEM 记录
psexesvc.exe的创建/删除、服务操作、进程链。
6)常见故障速修表
| 报错/症状 | 常见原因 | 处理 |
|---|---|---|
Access is denied. | 不是管理员;UAC 远程限制;防火墙阻断 | 提升权限/域帐户;临时设 LocalAccountTokenFilterPolicy=1;放行 445/135/RPC |
The network path was not found. | 名称解析/路由/SMB 被禁 | ping/nbtstat -a/Test-NetConnection -ComputerName -Port 445 |
The system cannot find the file specified. | -c 未用且远端找不到可执行文件 | 加 -c 或确保远端 PATH/工作目录正确 |
| 进程启动了但没 UI | 未指定会话或缺少 -h | -i <id> -h;RDS 查询会话号 |
| 偶发卡住/超时 | 链路抖动/高延迟 | 加大 -n;采用 -d 后台;减少复制体积(-v) |
7)脚手架模版(复制改参即可)
批量稳发(清单文件)
for /f %%H in (hosts.txt) do (psexec \\%%H -n 75 -c -v -w C:\ops -r opsvc -d agent.exe -install
)
一次性交互诊断
psexec \\host -i 1 -h powershell.exe -NoLogo -NoProfile
限权+后台
psexec \\app -l -belownormal -d -w C:\tasks task.exe /q
下一篇(7.9) 我们把镜头转向 运行时环境选项:工作目录、环境变量继承、配置文件落地与与其他 PsTools 的协作,以及“有/无配置文件”的可移植执行技巧。
