PowerShell "white belt" here, first time poster. I'll try not to lower the collective IQ of such a helpful community while I'm here! :) I'm running PowerShell 3.0 with Quest installed.
My organization has an Active Directory OU with several Security Groups that all control VPN access - these were created in the days before we had naming conventions (ugh!)
I'd prefer not to rely on the names by going "get me the members of X and Y and Z" but rather say "get me the members of anything in OU XXX" instead.
Ideally, I'd like a count at the end too, because ultimately this is for auditing "how many users have VPN access" (although I could barf results out to a .CSV or something if that's too complicated)
So I have some pieces that will do PARTS of this, I just can't quite visualize how to fit them all together. Any help would be appreciated. Here are my moving parts:
returns users in one specific group:
get-adgroupmember "group_of_coolness" -recursive | Select name
returns results from a user-filled OU using "searchbase":
Get-ADUser -Filter * -SearchBase 'ou=XXX,ou=XXX,dc=XXX,dc=XXX,dc=org' -Properties GivenName, Surname, EmailAddress, Office, Company, Title, distinguishedname |
select GivenName, Surname, EmailAddress, Office, Company, Title, distinguishedname | Out-GridView
returns results from a couple of specific groups but also gives a count (my most advanced patch-work so far ^^):
$GroupMembers=(get-ADGroup -filter {(Name -eq "XXXX") -or (Name -eq "YYYY")} |
get-adgroupmember -Recursive | select distinguishedname -Unique)
$Users=foreach ($user in $GroupMembers.distinguishedname) {
Get-ADUser $user
}
$Users | Sort-Object DistinguishedName |
select name, DistinguishedName
Write-Host
Write-Host "Total Users = " $Users.count
That last code-snippet seems closest to me, IF I could replace the "name -eq XXXX or YYYY" with "-searchbase "ou=XXX..."
What do you think smart people - am I at all close to the answer? Again, thanks for any advice, and let me know if I'm being a jack-ass and overlooking a thread where this is already answered (I found some close calls but nothing quite on-the-money).
I'm excited to see what I'm missing here :)