我正在嘗試取得 Windows Server 2008 DC 上的使用者名稱及其 pwdlastset 屬性的清單。我正在使用目錄服務,因為沒有安裝 adutils。該腳本正在運行,但我對 powershell 缺乏經驗,想知道如何改進輸出格式。目前,用戶名和日期均列印在新行中。我得到這樣的東西:
用戶1
密碼上次設定日期
用戶2
密碼上次設定日期
我怎麼才能得到類似的東西
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")
}
答案1
您可以透過執行下列操作來建立自訂數組:
$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
}
現在您有了一個包含資訊的數組,您可以使用格式表簡單地列印或格式化該資訊
$allinfo
$allinfo | format-table
$allinfo | export-csv -NoTypeInformation c:\allinfo.csv