PowerShell脚本查询CSV用户AD存在性并导出带指定属性的两类结果文件
PowerShell AD用户查询脚本调整方案
修改后可直接运行的脚本
Import-Module ActiveDirectory # 原有文件读取逻辑保留,若你的CSV为带表头的结构化文件,可替换为Import-Csv读取对应账号列 $UserList = Get-Content E:\Users\JohnDoe\Desktop\UserList.csv Foreach ($Item in $UserList) { $user = $null # 新增-Properties参数显式拉取描述、邮箱属性,AD默认查询不返回这两个字段 $user = Get-ADUser -Filter {samAccountName -eq $Item} -Properties Description,EmailAddress if ($user) { # 可自行调整Select-Object后的字段,按需选择要输出到txt的内容 $user | Select-Object Name,SamAccountName,Description,EmailAddress,Enabled,DistinguishedName,UserPrincipalName | Out-File E:\Users\JohnDoe\Desktop\existingAccounts.txt -Encoding Default -Append } else { "$item does not exist" | Out-File E:\Users\JohnDoe\Desktop\NotExistingAccounts.txt -Encoding Default -Append } }
修改说明
- 核心修改为
Get-ADUser命令新增-Properties Description,EmailAddress参数:ActiveDirectory模块默认仅返回用户基础属性,必须显式指定才能获取描述、邮箱两类扩展属性 - 新增
Select-Object可选配置:你可以根据需求增删后面的字段,自定义existingAccounts.txt中输出的内容,避免无关字段干扰 - 原有编码规则、文件存储路径、不存在账号的输出逻辑完全保留,和你原有使用习惯一致
内容的提问来源于stack exchange,提问作者slowfreak2
相关产品推荐
相关产品推荐

