Awesome.  Thanks Damien.

I really do intend to learn Powershell one of these days, honest.

From: Damien Solodow [mailto:[email protected]]
Sent: Wednesday, January 23, 2013 1:18 PM
To: Heaton, Joseph@Wildlife; NT System Admin Issues
Subject: RE: Help with this script

Yep.
The line $OUlist = @(Get-ADOrganizationalUnit -filter * -Credential $cred 
-SearchBase $domain.distinguishedName -SearchScope OneLevel -Server 
$domain.DNSroot)

Change OneLevel to SubTree

DAMIEN SOLODOW
Systems Engineer
317.447.6033 (office)
317.447.6014 (fax)
HARRISON COLLEGE

From: Heaton, Joseph@Wildlife [mailto:[email protected]]
Sent: Wednesday, January 23, 2013 4:14 PM
To: NT System Admin Issues
Subject: Help with this script

I found this script, to count user objects in all OUs.  The report doesn't list 
all OUs, so I was wondering if anyone could tell me if it has a limit as to how 
deep it will go to count.

Here's the script:

Import-Module activeDirectory

$fqdn = Read-Host "Enter FQDN domain"
$cred = Get-Credential

Write-Host "Contacting $fqdn domain..." -ForegroundColor Yellow

$domain = (get-addomain $fqdn -Credential $cred | select 
distinguishedName,pdcEmulator,DNSroot,DomainControllersContainer)

Write-Host "Completed. Enumerating OUs.." -ForegroundColor Yellow

$OUlist = @(Get-ADOrganizationalUnit -filter * -Credential $cred -SearchBase 
$domain.distinguishedName -SearchScope OneLevel -Server $domain.DNSroot)
Write-Host "Completed. Counting users..." -ForegroundColor Yellow

for($i = 1; $i -le $oulist.Count; $i++)
    {write-progress -Activity "Collecting OUs" -Status "Finding OUs $i" 
-PercentComplete ($i/$OUlist.count*100)}
$newlist = @{}



foreach ($_objectitem in $OUlist)
    {
    $getUser = Get-ADuser -Filter * -Credential $cred -SearchBase 
$_objectItem.DistinguishedName -SearchScope Subtree -Server $domain.pdcEmulator 
| measure | select Count
    for($i = 1; $i -le $getUser.Count; $i++)
    {write-progress -Activity "Counting users" -Status "Finding users $i in 
$_objectitem" -PercentComplete ($i/$getUser.count*100)}

    $newlist.add($_objectItem.Name, $getUser.Count)
    }

$newlist > .\OUuserCount.txt

Write-Host "All done!" -ForegroundColor yellow


So, the report that it creates only lists top level OUs under the domain.  I 
think it does, however, dig down under that to get the count, but just wanted 
to make sure.

Thanks,

Joe Heaton
Enterprise Server Support
CA Department of Fish and Wildlife
1807 13th Street, Suite 201
Sacramento, CA  95811
Desk:  (916) 557-3422


~ Finally, powerful endpoint security that ISN'T a resource hog! ~
~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~

---
To manage subscriptions click here: 
http://lyris.sunbelt-software.com/read/my_forums/
or send an email to 
[email protected]<mailto:[email protected]>
with the body: unsubscribe ntsysadmin

~ Finally, powerful endpoint security that ISN'T a resource hog! ~
~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~

---
To manage subscriptions click here: 
http://lyris.sunbelt-software.com/read/my_forums/
or send an email to 
[email protected]<mailto:[email protected]>
with the body: unsubscribe ntsysadmin

~ Finally, powerful endpoint security that ISN'T a resource hog! ~
~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~

---
To manage subscriptions click here: 
http://lyris.sunbelt-software.com/read/my_forums/
or send an email to [email protected]
with the body: unsubscribe ntsysadmin

Reply via email to