powershell passwordlastset导出到电子表格

时间:2014-11-14 14:55:40

标签: powershell csv

为什么在我输入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:\temp\WindowsXP_Only.csv' -NoType -Force

1 个答案:

答案 0 :(得分:1)

默认情况下,不会返回所有属性,因此您需要指定所需的其他属性。

此外,如果您要查找上一个登录日期(根据您的输出),您应该使用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 } }

您可能还会找到this script useful