我有一个包含 100 个用户的记事本列表。通常我使用下面的脚本来获取一个 OU 中的所有用户,但这次我有来自不同 OU 的用户,我必须使用 Samaccountname 进行搜索。
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 的新手,所以上面的脚本本身对我来说有点难以掌握,现在我的任务更加艰巨。