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

PowerShell创建AD域用户脚本:检测重名用户并提示补充中间名

PowerShell AD用户重名检测脚本修正方案

前置依赖

运行脚本前需要确认已安装RSAT Active Directory PowerShell组件,执行以下命令导入AD模块:
Import-Module ActiveDirectory

修正后完整代码

$firstName = Read-Host -Prompt '请输入新用户的名'
$lastName = Read-Host -Prompt '请输入新用户的姓'
$userName = "$firstName.$lastName"

# 检测AD中是否存在同名用户
$adUser = Get-ADUser -Filter {sAMAccountName -eq $userName} -ErrorAction SilentlyContinue
if ($null -ne $adUser) {
    Write-Host "$userName 已被占用"
    $selection = Read-Host "是否需要添加中间名?(Y/N)"
    switch ($selection) {
        'Y' {
            $middleName = Read-Host -Prompt "请输入用户的中间名首字母"
            $userName = "$firstName.$middleName.$lastName"
            # 可在此处补充对新生成用户名的二次重名检测逻辑
        }
        'y' {
            $middleName = Read-Host -Prompt "请输入用户的中间名首字母"
            $userName = "$firstName.$middleName.$lastName"
            # 可在此处补充对新生成用户名的二次重名检测逻辑
        }
        'N' {
            return
        }
        'n' {
            return
        }
    }
}
else {
    # 用户名未被占用,直接执行后续创建用户逻辑
    # New-ADUser ......
}

修改说明

  • 替换了原代码中错误的重名判断逻辑if ($username -match -ADUser),改用Get-ADUser实际查询AD域中的用户数据,查询结果非空则判定为用户已存在
  • 修复了原代码中read-host - prompt中间多余空格的语法错误
  • 新增了对小写y/n输入的适配,避免用户输入小写字符时脚本无响应
  • 预留了二次重名检测和用户创建的逻辑位置,你可以根据自己的实际需求补充对应代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:21:00