PowerShell密码上次设置导出到电子表格



为什么当我在 csv 文件中导出 passwordlastset 属性中的所有计算机时,它都显示为空白? 其他一切都很完美。

 $Searcher = New-ObjectSystem.DirectoryServices.DirectorySearcher([ADSI]"LDAP://dc=amers,dc=jhe,dc=domain,dc=com")
 $Searcher.Filter = "(&(objectCategory=computer)(objectClass=computer)(!UserAccountControl:1.2.840.113556.1.4.803:=2)(operatingSystem=Windows XP*))"
 $Searcher.PageSize = 100000
 $results = $Searcher.Findall()
 $results | ForEach-Object { $_.GetDirectoryEntry() } |
 select @{ n = 'CN'; e = { ($_.CN) } },
   @{ n = 'DistinguishedName'; e = { $_.DistinguishedName } },
   @{ n = 'extensionattribute7'; e = { $_.extensionattribute7 } },
   @{ n = 'LastLogon'; e = { [DateTime]::FromFileTime($_.PasswordLastSet) } },
   @{ n = 'OperatingSystem'; e = { $_.OperatingSystem } } |
 Export-Csv 'C:tempWindowsXP_Only.csv' -NoType -Force

默认情况下,并非所有属性都返回,因此需要指定所需的其他属性。

此外,如果您要查找上次登录日期(根据您的输出),则应使用 lastLogonTimestamp 而不是 PasswordLastSet

这是一个使用 Get-ADComputer 的示例,我非常喜欢使用旧的搜索 AD 方法。只需在对结果感到满意时添加您的Export-CSV即可。

$results = get-adcomputer -Filter "operatingSystem -like 'Windows XP*'" -properties cn,lastlogontimestamp,operatingsystem,extensionattribute7,PasswordLastSet -searchbase "dc=amers,dc=jhe,dc=domain,dc=com";
$results | 
 select @{ n = 'CN'; e = { ($_.cn) } },
   @{ n = 'DistinguishedName'; e = { $_.DistinguishedName } },
   @{ n = 'extensionattribute7'; e = { $_.extensionattribute7 } },
   @{ n = 'LastLogon'; e = { [DateTime]::FromFileTime($_.lastLogonTimestamp) } },
   @{ n = 'PasswordLastSet'; e = { [DateTime]::FromFileTime($_.PasswordLastSet) } },
   @{ n = 'OperatingSystem'; e = { $_.OperatingSystem } }

您可能还会发现此脚本很有用

相关内容

最新更新