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

PowerShell远程批量创建本地用户:单次输入实现多机操作

批量处理本地用户创建与组添加的脚本修改方案

原脚本在每台远程电脑上都会触发多次交互输入,原因是New-LocalUser和Add-LocalGroupMember在远程执行时未传入必要参数,导致每台机器单独弹出提示。要实现单次输入完成所有电脑的操作,只需先在本地收集所有参数,再通过远程执行的参数传递功能批量处理。

修改后的完整脚本(创建新用户并添加到Users组)

# 定义目标电脑列表
$PC = "PC01","PC02","PC03"

# 本地单次收集所有必要信息
$newUserName = Read-Host "请输入要创建的本地用户名"
$newUserPassword = Read-Host "请输入该用户的密码" -AsSecureString

# 远程执行用户创建与组添加操作
Invoke-Command -ComputerName $PC -ScriptBlock {
    # 接收本地传入的参数
    $userName = $args[0]
    $userPassword = $args[1]
    
    # 创建本地用户(补充可选参数避免交互提示)
    New-LocalUser -Name $userName -Password $userPassword -FullName $userName -Description "批量创建的本地用户"
    
    # 将新用户添加到Users组
    Add-LocalGroupMember -Group "Users" -Member $userName
} -ArgumentList $newUserName, $newUserPassword

核心修改说明

  • 提前收集参数:在本地用Read-Host一次性获取用户名和密码,避免每台远程电脑重复提示。
  • 参数传递:通过Invoke-Command的-ArgumentList参数,把本地收集的变量传递到远程脚本块,远程用$args数组读取这些值。
  • 明确命令参数:给New-LocalUser和Add-LocalGroupMember指定完整的必要参数,消除交互触发条件。

扩展场景:仅添加现有账户到Users组

如果需求是将已存在的账户批量加入Users组,可使用简化版脚本:

$PC = "PC01","PC02","PC03"
$memberToAdd = Read-Host "请输入要添加到Users组的账户名"

Invoke-Command -ComputerName $PC -ScriptBlock {
    Add-LocalGroupMember -Group "Users" -Member $args[0]
} -ArgumentList $memberToAdd

注意事项

  • 执行脚本的账户需拥有所有目标电脑的管理员权限。
  • 确保目标电脑已启用WinRM服务(PowerShell远程管理功能)。
  • 输入的密码需符合目标电脑的本地密码策略,否则会创建失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:42:40