如何从用户名单批量获取AD账户到期日期并导出至CSV?
批量查询AD用户信息并导出CSV的PowerShell脚本
当然可以实现批量查询并导出的需求,下面针对TXT和CSV两种输入文件格式,分别提供对应的脚本:
一、从TXT文件读取用户名单
要求:TXT文件中每行仅包含一个用户名,空行会被脚本自动过滤。
# 替换为你的输入TXT文件路径 $inputTxtPath = "C:\data\users.txt" # 替换为你的输出CSV文件路径 $outputCsvPath = "C:\output\ADUsers_Expiry_Info.csv" # 读取TXT文件并过滤空行 $userList = Get-Content $inputTxtPath | Where-Object { $_ -match '\S' } $results = @() foreach ($user in $userList) { # 查询AD用户,仅加载需要的属性以提升效率 $adUser = Get-ADUser -Identity $user -Properties AccountExpirationDate -ErrorAction SilentlyContinue if ($adUser) { $resultObj = [PSCustomObject]@{ SamAccountName = $adUser.SamAccountName DisplayName = $adUser.DisplayName AccountExpirationDate = $adUser.AccountExpirationDate } $results += $resultObj } else { # 记录未找到的用户 $results += [PSCustomObject]@{ SamAccountName = $user DisplayName = "用户未找到" AccountExpirationDate = $null } } } # 导出结果到CSV,避免类型信息并指定UTF8编码防止中文乱码 $results | Export-Csv -Path $outputCsvPath -NoTypeInformation -Encoding UTF8
二、从CSV文件读取用户名单
要求:CSV文件需包含用于识别用户的列(示例中使用Username列,若你的列名不同需对应修改)。
# 替换为你的输入CSV文件路径 $inputCsvPath = "C:\data\users.csv" # 替换为你的输出CSV文件路径 $outputCsvPath = "C:\output\ADUsers_Expiry_Info.csv" # 读取CSV文件 $userList = Import-Csv $inputCsvPath $results = @() foreach ($userEntry in $userList) { # 若CSV列名不是Username,修改此处为实际列名(如UserID) $user = $userEntry.Username $adUser = Get-ADUser -Identity $user -Properties AccountExpirationDate -ErrorAction SilentlyContinue if ($adUser) { $resultObj = [PSCustomObject]@{ SamAccountName = $adUser.SamAccountName DisplayName = $adUser.DisplayName AccountExpirationDate = $adUser.AccountExpirationDate } $results += $resultObj } else { $results += [PSCustomObject]@{ SamAccountName = $user DisplayName = "用户未找到" AccountExpirationDate = $null } } } $results | Export-Csv -Path $outputCsvPath -NoTypeInformation -Encoding UTF8
注意事项
- 运行脚本前需确保已加载ActiveDirectory模块,可执行
Import-Module ActiveDirectory完成加载 - 需拥有查询AD用户的权限
- 脚本中使用
-Properties AccountExpirationDate替代原命令的-Property *,仅加载需要的属性,大幅提升查询效率 - 导出CSV时指定
-Encoding UTF8可避免中文显示乱码问题
内容的提问来源于stack exchange,提问作者S.Mahmood
相关产品推荐
相关产品推荐

