获取活动目录所有对象的PowerShell脚本


脚本

(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 

文章作者: 运维网YUNWEI.WANG
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 运维网YUNWEI.WANG !
  目录