下面的命令是我从微软网站上直接摘取的。它能正常工作并产生如下结果:
名称、PasswordLastSet 和 LastLogonStamp。
现在,我需要知道要输入什么才能将其导出为具有相同格式的 CSV,即名称、密码最后设置、上次登录戳等。
我对 PS 脚本一无所知,所以这似乎是一个愚蠢的问题,但我无法弄清楚。
$d = [DateTime]::Today.AddDays(-180)
Get-ADUser -Filter '(PasswordLastSet -lt $d) -or (LastLogonTimestamp -lt $d)' -Properties PasswordLastSet,LastLogonTimestamp | ft Name,PasswordLastSet,@{N="LastLogonTimestamp";E={[datetime]::FromFileTime($_.LastLogonTimestamp)}}
答案1
最终有效的文本如下:
$d = [日期时间]::今天.添加天数(-180)
Get-ADUser -Filter '(PasswordLastSet -lt $d) -or (LastLogonTimestamp -lt $d)' -Properties PasswordLastSet,LastLogonTimestamp | Select-Object Name,PasswordLastSet,@{N="LastLogonTimestamp";E={[datetime]::FromFileTime($_.LastLogonTimestamp)}} | Export-Csv -Path C:\Another.csv -NoTypeInformation
感谢大家的帮助!!
答案2
Format-Tableft
仅适用于控制台视图 -Select-Object
用于其他任何用途,以及Export-CSV
输出到文件。 变量不会$d
在单引号内展开。 尝试以下操作:
$d = [DateTime]::Today.AddDays(-180).ToFileTime()
Get-ADUser -Filter "(LastLogon -lt $d) -or (PasswordLastSet -lt $d)" -Properties LastLogon,PasswordLastSet |
Select-Object Name,PasswordLastSet,@{N="LastLogonTimestamp";E={[datetime]::FromFileTime($_.LastLogon)}} |
Export-CSV -Path 'C:\Folder\File.csv' -NoTypeInformation
编辑:您必须将您的初始日期转换为FileTime
过滤之前,并且必须过滤这些特定的属性名称