为什么在我输入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
答案 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