added checks for groups, users and fileshare.
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
# Function to get groups and their members from a specific OU
|
||||
function Get-GroupsAndMembers {
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$OUPath,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$GroupType
|
||||
)
|
||||
|
||||
Write-Host "`n=== $GroupType Groups in $OUPath ===" -ForegroundColor Cyan
|
||||
|
||||
try {
|
||||
# Get all groups in the specified OU
|
||||
$groups = Get-ADGroup -Filter * -SearchBase $OUPath -Properties Members, Description
|
||||
|
||||
if ($groups) {
|
||||
foreach ($group in $groups) {
|
||||
Write-Host "`nGroup: $($group.Name)" -ForegroundColor Green
|
||||
Write-Host "Description: $($group.Description)"
|
||||
Write-Host "Distinguished Name: $($group.DistinguishedName)"
|
||||
|
||||
# Get group members
|
||||
$members = Get-ADGroupMember -Identity $group.DistinguishedName
|
||||
|
||||
if ($members) {
|
||||
Write-Host "Members:" -ForegroundColor Yellow
|
||||
foreach ($member in $members) {
|
||||
# Get additional user/group properties
|
||||
if ($member.objectClass -eq "user") {
|
||||
$details = Get-ADUser -Identity $member.SamAccountName -Properties DisplayName, Title, Department
|
||||
Write-Host " - $($details.DisplayName) ($($details.SamAccountName))"
|
||||
Write-Host " Title: $($details.Title)"
|
||||
Write-Host " Department: $($details.Department)"
|
||||
}
|
||||
else {
|
||||
Write-Host " - $($member.Name) (Group)"
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Write-Host "No members found in this group." -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Write-Host "No groups found in this OU." -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host "Error accessing OU $OUPath : $_" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
|
||||
# Function to export results to CSV
|
||||
function Export-GroupMembership {
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$OUPath,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$OutputFile
|
||||
)
|
||||
|
||||
try {
|
||||
$results = @()
|
||||
$groups = Get-ADGroup -Filter * -SearchBase $OUPath -Properties Members, Description
|
||||
|
||||
foreach ($group in $groups) {
|
||||
$members = Get-ADGroupMember -Identity $group.DistinguishedName
|
||||
|
||||
foreach ($member in $members) {
|
||||
$memberDetails = @{
|
||||
'GroupName' = $group.Name
|
||||
'GroupDescription' = $group.Description
|
||||
'MemberName' = $member.Name
|
||||
'MemberType' = $member.objectClass
|
||||
'MemberSAM' = $member.SamAccountName
|
||||
}
|
||||
|
||||
if ($member.objectClass -eq "user") {
|
||||
$userDetails = Get-ADUser -Identity $member.SamAccountName -Properties DisplayName, Title, Department
|
||||
$memberDetails['MemberTitle'] = $userDetails.Title
|
||||
$memberDetails['MemberDepartment'] = $userDetails.Department
|
||||
}
|
||||
|
||||
$results += New-Object PSObject -Property $memberDetails
|
||||
}
|
||||
}
|
||||
|
||||
$results | Export-Csv -Path $OutputFile -NoTypeInformation
|
||||
Write-Host "Results exported to $OutputFile" -ForegroundColor Green
|
||||
}
|
||||
catch {
|
||||
Write-Host "Error exporting results: $_" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
|
||||
# Main script !!! Make sure to edit the path to match your AD Infrastructure
|
||||
# Correct path is found with this command: Get-ADOrganizationalUnit -filter * | ft
|
||||
$globalGroupsOU = "OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec" # Add your Global Groups OU path here
|
||||
$localGroupsOU = "OU=Local,OU=RohanIT_Groups,DC=RohanIT,DC=sec" # Add your Local Groups OU path here
|
||||
|
||||
# Verify both global and local groups
|
||||
Get-GroupsAndMembers -OUPath $globalGroupsOU -GroupType "Global"
|
||||
Get-GroupsAndMembers -OUPath $localGroupsOU -GroupType "Local"
|
||||
|
||||
# Export results to CSV
|
||||
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
|
||||
#Export-GroupMembership -OUPath $globalGroupsOU -OutputFile "GlobalGroups_$timestamp.csv"
|
||||
#Export-GroupMembership -OUPath $localGroupsOU -OutputFile "LocalGroups_$timestamp.csv"
|
||||
|
||||
|
||||
<#
|
||||
=== Global Groups in OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec ===
|
||||
|
||||
Group: GG_Finance
|
||||
Description:
|
||||
Distinguished Name: CN=GG_Finance,OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec
|
||||
Members:
|
||||
- (bolsen)
|
||||
Title:
|
||||
Department: Finance
|
||||
|
||||
Group: GG_Sales
|
||||
Description:
|
||||
Distinguished Name: CN=GG_Sales,OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec
|
||||
Members:
|
||||
- (samberlamps)
|
||||
Title:
|
||||
Department: Sales
|
||||
- (sbrannmann)
|
||||
Title:
|
||||
Department: Sales
|
||||
|
||||
Group: GG_IT
|
||||
Description:
|
||||
Distinguished Name: CN=GG_IT,OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec
|
||||
Members:
|
||||
- (kmonsen)
|
||||
Title:
|
||||
Department: IT
|
||||
- (ielaiassen)
|
||||
Title:
|
||||
Department: IT
|
||||
|
||||
Group: GG_Consultants
|
||||
Description:
|
||||
Distinguished Name: CN=GG_Consultants,OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec
|
||||
Members:
|
||||
- (vwilliassen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (mkarstensen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (mandersen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (amonsen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (amuhammed)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (kkristoffersen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (nstiansen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (mbruun)
|
||||
Title:
|
||||
Department: Consultants
|
||||
- (eeiliassen)
|
||||
Title:
|
||||
Department: Consultants
|
||||
|
||||
Group: GG_HR
|
||||
Description:
|
||||
Distinguished Name: CN=GG_HR,OU=Global,OU=RohanIT_Groups,DC=RohanIT,DC=sec
|
||||
Members:
|
||||
- (hhope)
|
||||
Title:
|
||||
Department: HR
|
||||
|
||||
=== Local Groups in OU=Local,OU=RohanIT_Groups,DC=RohanIT,DC=sec ===
|
||||
|
||||
Group: l_remoteDesktopNonAdmin
|
||||
Description:
|
||||
Distinguished Name: CN=l_remoteDesktopNonAdmin,OU=Local,OU=RohanIT_Groups,DC=RohanIT,DC=sec
|
||||
Members:
|
||||
|
||||
- GG_HR (Group)
|
||||
- GG_Consultants (Group)
|
||||
- GG_IT (Group)
|
||||
- GG_Sales (Group)
|
||||
- GG_Finance (Group)
|
||||
|
||||
#>
|
||||
Reference in New Issue
Block a user