#用途:列举当前域控中所有用户信息,并保存至CSV文件中。
#作者:Rootcat
#日期:2009-0-29
#
$strFilter = "(&(objectCategory=User)(logonCount>=1)(!userAccountControl:1.2.840.113556.1.4.803:=2))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$colResults = $objSearcher.FindAll();
$userlist = @()
foreach ($objResult in $colResults)
{
$objItem = $objResult.Properties;
$selected_user = New-Object psobject
$selected_user | Add-Member NoteProperty -Name "Name" -Value $objItem.name[0]
#处理空数据
If($objItem.mail -eq $null)
{
$selected_user | Add-Member NoteProperty -Name "Email" -Value "NULL"
}else{
$selected_user | Add-Member NoteProperty -Name "Email" -Value $objItem.mail[0]
}
#将数据对象加入用户数组
$userlist+=$selected_user
}
#直接输出信息并输出到CSV文件
$userlist | Select Name, Email |export-csv -Encoding "Unicode" F:\powershell\AdUserInfo.csv