脚本
(Get-Date).ToString('yyyy-MM-dd HH:mm:ss') | Add-Content datetime.txt
$ous = Get-ADOrganizationalUnit -Filter 'Name -like "*"' | select distinguishedName,objectGUID
ForEach ($ou in $ous)
{
if ( $ou -eq $null ) { continue }
$ou.objectGUID.toString()+" " +$ou.distinguishedName | Add-Content ous.txt
$oudn = $ou.distinguishedName
$ouprops = Get-ADOrganizationalUnit -Identity "$oudn" -Properties * | Select-Object * | Add-Content ouprops.txt
$ouusers = Get-ADUser -Filter * -SearchScope OneLevel -SearchBase "$oudn" | Select objectGUID,DistinguishedName,samAccountName
ForEach ($ouuser in $ouusers)
{
if ( $ouuser -eq $null ) { continue }
$ou.objectGUID.toString()+" "+$ouuser.objectGUID.toString()+" "+$ouuser.distinguishedName | Add-Content users.txt
"--------------------" | Add-Content userprops.txt
$account = $ouuser.samAccountName
Get-ADUser $account -Properties * | Select-Object * | Add-Content userprops.txt
"--------------------" | Add-Content usergroups.txt
$account | Add-Content usergroups.txt
Get-ADPrincipalGroupMembership $account | select distinguishedName | Add-Content usergroups.txt
}
$ougroups = Get-ADGroup -Filter * -SearchScope OneLevel -SearchBase "$oudn" | Select objectGUID,DistinguishedName,samAccountName
ForEach ($ougroup in $ougroups)
{
if ( $ougroup -eq $null ) { continue }
$ou.objectGUID.toString()+" "+$ougroup.objectGUID.toString()+" "+$ougroup.distinguishedName | Add-Content groups.txt
"--------------------" | Add-Content usergroups.txt
$group = $ougroup.distinguishedName
Get-ADGroup -Identity "$group" -Properties * | Select-Object * | Add-Content groupprops.txt
}
}
(Get-Date).ToString('yyyy-MM-dd HH:mm:ss') | Add-Content datetime.txt