如何用PowerShell导出含指定格式日期及OU路径的Active Directory用户数据到CSV
PowerShell 导出Active Directory用户指定字段到CSV脚本
前置依赖
- 需要提前安装RSAT Active Directory PowerShell模块
- 运行脚本的账号需要具备AD域用户读取权限
- 需在加入域的设备或域控制器上运行
完整脚本
# 导入AD模块 Import-Module ActiveDirectory # 定义导出路径,可自行修改 $exportPath = "C:\AD用户导出.csv" # 查询所有AD用户并处理对应字段 Get-ADUser -Filter * -Properties LastLogonDate, PasswordLastSet, CanonicalName | ForEach-Object { # 拆分OU路径,跳过域名段获取各级OU $ouParts = $_.CanonicalName -split '/', 4 | Select-Object -Skip 1 [PSCustomObject]@{ "用户" = $_.SamAccountName # 如需展示用户全名可替换为 $_.DisplayName "上次登录日期" = if ($_.LastLogonDate) { $_.LastLogonDate.ToString('yyyy-MM-dd') } else { "" } "密码修改日期" = if ($_.PasswordLastSet) { $_.PasswordLastSet.ToString('yyyy-MM-dd') } else { "" } "根OU" = $ouParts[0] ?? "" "一级子OU" = $ouParts[1] ?? "" "二级子OU" = $ouParts[2] ?? "" } } | Export-Csv -Path $exportPath -NoTypeInformation -Encoding UTF8
特性说明
- 导出的CSV自带符合要求的表头,所有字段自动拆分至独立单元格
- 日期统一按
yyyy-mm-dd格式输出,无对应数据的字段自动留空 - OU层级按从根到子的顺序拆分,不足三级的OU对应字段自动留空
- UTF-8编码兼容Excel直接打开,不会出现中文乱码问题
内容的提问来源于stack exchange,提问作者Zachary Jensen
相关产品推荐
相关产品推荐

