我有一個記事本列表的100個用戶。通常我使用下面的腳本來獲取一個OU中的所有用戶,但是這次我有來自不同OU的用戶,我必須使用Samaccountname進行搜索。Powershell獲取用戶屬性給定samaaccount
clear
$UserInfoFile = New-Item -type file -force "C:\Scripts\UserInfo.txt"
"Login`tGivenname`tEmail" | Out-File $UserInfoFile -encoding ASCII
Import-CSV "C:\Scripts\OU.txt" | ForEach-Object {
$dn = $_.dn
$ObjFilter = "(&(objectCategory=User)(objectCategory=Person))"
$objSearch = New-Object System.DirectoryServices.DirectorySearcher
$objSearch.PageSize = 15000
$objSearch.Filter = $ObjFilter
$objSearch.SearchRoot = "LDAP://$dn"
$AllObj = $objSearch.FindAll()
foreach ($Obj in $AllObj)
{ $objItemS = $Obj.Properties
$Ssamaccountname = $objItemS.samaccountname
$SsamaccountnameGN = $objItemS.givenname
$SsamaccountnameSN = $objItemS.sn
$SsamaccountnameEN = $objItemS.mail
"$Ssamaccountname`t$SsamaccountnameGN`t$SsamaccountnameSN`t$SsamaccountnameEN" | Out-File $UserInfoFile -encoding ASCII -append
} # End of foreach
} # End of ForEach-Object
我想使用samaccountname列表來獲取這些用戶的名稱和電子郵件。我是Powershell的新手,所以上面的腳本本身對我來說有點難以掌握,現在我面臨着更加困難的任務。
我建議使用任務pssnapin:http://www.quest.com/powershell/activeroles-server.aspx – 2013-05-14 16:54:08