Windows-Server-2008
在 Windows Server 2008 上使用 DirectoryServices 使用 powershell 列出 AD 屬性
我正在嘗試在 Windows Server 2008 DC 上獲取使用者名列表及其 pwdlastset 屬性。我正在使用目錄服務,因為沒有安裝 adutils。該腳本正在執行,但我對 powershell 缺乏經驗,想知道如何改進輸出格式。目前,使用者名和日期分別列印在一個新行中。我得到這樣的東西:
使用者1
pwdlastsetdate
使用者2
pwdlastsetdate
我怎樣才能得到類似的東西
user1;pwdlastsetdate
user2;pwdlastsetdate
謝謝!
這是我正在使用的腳本:
$SR=New-Object DirectoryServices.DirectoryEntry("GC://OU=OrganisationName,OU=Users,DC=site,DC=orgname,DC=de") $searcher=New-Object DirectoryServices.DirectorySearcher($SR) $searcher.Filter="(&(objectCategory=User))" $results=$searcher.findall() foreach ($usr in $results) { $usrdata = $usr.Properties $usrdata.name [DateTime]::FromFileTime($usrdata.pwdlastset[0]).ToString("d") }
您可以通過執行以下操作來創建自定義數組:
$SR=New-Object DirectoryServices.DirectoryEntry("GC://OU=OrganisationName,OU=Users,DC=site,DC=orgname,DC=de") $searcher=New-Object DirectoryServices.DirectorySearcher($SR) $searcher.Filter="(&(objectCategory=User))" $results=$searcher.findall() $allinfo = @() foreach ($usr in $results) { $info = "" | Select Name,Date $usrdata = $usr.Properties #Without [0] you get curly brackets in username output $info.Name = $usrdata.name[0] $info.Date = [DateTime]::FromFileTime($usrdata.pwdlastset[0]).ToString("d") $allinfo += $info }
現在您有了一個包含資訊的數組,您可以使用 format-table 簡單地列印或格式化
$allinfo $allinfo | format-table $allinfo | export-csv -NoTypeInformation c:\allinfo.csv