You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过PSEXEC批量将用户添加至远程桌面用户组

批量通过PsExec将用户添加到多台计算机的Remote Desktop Users组

好的,我来帮你把单台的命令扩展成批量处理的脚本,针对你提到的需求,我准备了两种常见场景的实现方案,你可以根据自己的实际情况选择:

场景1:给多台计算机添加同一个域用户

如果你的需求是把同一个域用户批量加入多台计算机的Remote Desktop Users组,只需要准备一个每行包含一个计算机标识(也就是你原来命令里的%cn%值)的文本文件(比如命名为computers.txt),然后用下面的批处理脚本:

@echo off
setlocal enabledelayedexpansion

:: 先设置好要添加的用户信息,替换成你实际的域、名、姓
set "domain=your_domain_name"
set "first_name=your_user_firstname"
set "last_name=your_user_lastname"
set "full_user=!domain!\!first_name!.!last_name!"

:: 循环读取computers.txt里的每一行(每行对应一个cn值)
for /f "delims=" %%c in (computers.txt) do (
    echo 正在处理计算机: pc-%%c
    :: 这里可以加上/accepteula参数跳过PsExec首次运行的协议提示
    psexec /accepteula \\pc-%%c NET LOCALGROUP "Remote Desktop Users" !full_user! /ADD
    echo ---------------------------
)

endlocal
pause

脚本说明:

  • setlocal enabledelayedexpansion用来确保循环内部的变量能正确解析
  • 提前定义好域和用户的名、姓,组合成完整的域用户路径
  • for /f命令会逐行读取computers.txt的内容,把每行的值作为%%c代入到你的PsExec命令里

场景2:每台计算机对应不同的用户

如果你的需求是给不同的计算机添加不同的用户,可以准备一个包含计算机标识、用户名字、用户姓氏的文本文件(比如computer_user_list.txt),每行格式为cn值 名 姓(比如001 John Doe),然后用下面的脚本:

@echo off
setlocal enabledelayedexpansion

set "domain=your_domain_name"

:: 循环读取每行的cn、fn、ln值,按空格分隔成三个部分
for /f "tokens=1,2,3 delims= " %%c in (computer_user_list.txt) do (
    set "full_user=!domain!\%%d.%%e"
    echo 正在给计算机pc-%%c添加用户: !full_user!
    psexec /accepteula \\pc-%%c NET LOCALGROUP "Remote Desktop Users" !full_user! /ADD
    echo ---------------------------
)

endlocal
pause

脚本说明:

  • tokens=1,2,3会把每行的内容按空格拆分成三个部分,分别赋值给%%c(cn值)、%%d(用户名字)、%%e(用户姓氏)
  • 动态组合成对应域用户后执行添加命令

注意事项

  • 确保PsExec工具在你的系统PATH环境变量里,或者把它放在脚本的同一目录下,否则需要写完整路径(比如C:\PsTools\psexec.exe)
  • 运行这个脚本的账号必须拥有所有目标计算机的管理员权限
  • 目标计算机需要开启文件和打印机共享,并且防火墙要放行PsExec的通信端口
  • 如果执行时遇到PsExec的协议提示,一定要加上/accepteula参数跳过

内容的提问来源于stack exchange,提问作者cgitech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:11:21