要用 powershell 管理 active directory 用户对象,核心是加载 activedirectory 模块,并熟练使用 new-aduser、set-aduser、get-aduser 和 remove-aduser 这四个基础 cmdlet。操作必须在具备域管理员权限的环境中进行,且模块需已正确安装并导入。
要用 powershell 管理 active directory 用户对象,核心是加载 activedirectory 模块,并熟练使用 new-aduser、set-aduser、get-aduser 和 remove-aduser 这四个基础 cmdlet。操作必须在具备域管理员权限的环境中进行,且模块需已正确安装并导入。
确保 AD PowerShell 模块可用
模块不是 Windows 默认自带的,尤其在客户端系统(如 Windows 10/11)上需手动启用:
- 以管理员身份打开 PowerShell
- 运行
Import-Module ActiveDirectory;若报错“找不到模块”,说明尚未安装 - Windows Server:运行
Install-WindowsFeature RSAT-AD-PowerShell - Windows 10/11:前往「设置 → 应用 → 可选功能 → 添加功能」,勾选「RSAT: Active Directory Domain Services and Lightweight Directory Services Tools」
- 验证是否就绪:执行
Get-Command -Module ActiveDirectory | Where-Object {$_.Noun -eq 'ADUser'},应列出全部用户相关 cmdlet
批量创建 AD 用户(基于 CSV)
适合一次性部署数十甚至上百个账户,所有字段需严格匹配策略要求:
- 准备 UTF-8 编码的 CSV 文件(如
users.csv),表头至少含:FirstName、LastName、Department、Email、Password - 密码必须为明文,且满足域密码策略(长度、复杂度、历史记录等)
- 执行脚本前确认
SamAccountName值唯一、只含字母数字及连字符/下划线 - 典型创建逻辑示例:
$users = Import-Csv "C:\users.csv"<br> foreach ($user in $users) {<br> $pw = ConvertTo-SecureString $user.Password -AsPlainText -Force<br> New-ADUser -GivenName $user.FirstName -Surname $user.LastName `<br> -SamAccountName "$($user.FirstName).$($user.LastName)" `<br> -UserPrincipalName "$($user.FirstName).$($user.LastName)@contoso.com" `<br> -Department $user.Department -EmailAddress $user.Email `<br> -AccountPassword $pw -Enabled $true -ChangePasswordAtLogon $false `<br> -Path "OU=Staff,DC=contoso,DC=com"<br> }
查询与修改现有用户属性
日常运维中最常使用的两个操作,支持精准筛选和批量更新:
- 查单个用户完整信息:
Get-ADUser -Identity johnd -Properties * - 查多个用户指定属性:
Get-ADUser -Filter "Department -eq 'IT'" -Properties DisplayName,OfficePhone,EmailAddress | Select Name,DisplayName,OfficePhone - 改单个用户电话和职位:
Set-ADUser -Identity johnd -OfficePhone "555-0199" -Title "Senior Admin" - 批量启用/禁用账户:
Get-ADUser -Filter "Enabled -eq 'False'" | Set-ADUser -Enabled $true - 重置密码需额外转换:
$newPw = ConvertTo-SecureString "TempPass!2026" -AsPlainText -Force; Set-ADAccountPassword -Identity johnd -NewPassword $newPw -Reset
安全删除与审计导出
删除不可逆,导出用于合规检查,都需谨慎执行:
- 删除前建议先禁用:
Disable-ADAccount -Identity johnd,观察一周无误再删 - 真正删除账户:
Remove-ADUser -Identity johnd -Confirm:$false(加-Confirm:$false跳过交互提示) - 导出当前所有启用用户的基本信息:
Get-ADUser -Filter "Enabled -eq 'True'" -Properties DisplayName,Department,LastLogonDate,EmailAddress | Select Name,DisplayName,Department,EmailAddress,LastLogonDate | Export-Csv "C:\ad-users-report.csv" -NoTypeInformation - 注意:
LastLogonDate是近似值,实际最后登录时间可能有数小时延迟,因该属性由域控制器同步更新











