PowerShell导出AD用户指定属性为CSV格式的方法咨询
PowerShell导出AD用户指定属性为CSV格式的方法咨询
嗨,别担心,这绝对不是傻问题!很多刚接触PowerShell的朋友都会卡在输出格式转换这一步,我来帮你搞定~
你原来的命令里用了ft(也就是Format-Table),这个命令是专门用来在控制台显示美观表格的,但它会把原始的AD用户对象转换成格式化后的输出,没法直接用来导出CSV。要导出成你想要的格式,我们只需要把ft换成Select-Object(用来筛选并保留需要的属性),然后通过管道传给Export-Csv命令就可以了。
下面是修改好的完整命令,你只需要替换一下导出的文件路径就行:
$d = [DateTime]::Today.AddDays(-180) Get-ADUser -Filter '(PasswordLastSet -lt $d) -or (LastLogonTimestamp -lt $d)' -Properties PasswordLastSet,LastLogonTimestamp | Select-Object Name, PasswordLastSet, @{Name="LastLogonTimestamp";Expression={[datetime]::FromFileTime($_.LastLogonTimestamp)}} | Export-Csv -Path "C:\你的保存路径\AD过期用户.csv" -NoTypeInformation -Encoding UTF8
我给你解释几个关键的点:
Select-Object会保留我们指定的属性(包括转换后的LastLogonTimestamp),生成适合导出的对象-Path后面填你实际想保存CSV的路径,比如想存桌面可以写成"$HOME\Desktop\ADUsers.csv"-NoTypeInformation可以去掉CSV文件开头的类型注释行,让文件更干净-Encoding UTF8能避免导出的CSV出现中文乱码问题
如果不确定输出内容对不对,你可以先去掉最后一行的Export-Csv部分,运行前面的命令在控制台预览结果,确认没问题再加上导出命令就行啦~
备注:内容来源于stack exchange,提问作者K Val
相关产品推荐
相关产品推荐

