Private/ADLookups/_GroupsTabLookup.ps1
function _GroupsTabLookup { $OutputObject = $AllGroups | Where-Object Name -EQ $ADLookups_GroupTabSamAccountNameComboBox.Text if ($null -eq $OutputObject) { $ErrorString = "Unable to validate provided group name. Make sure this is a Name.`nYou can verify this in the first tab, 'Find'." _ShowMessageBox -MessageText $ErrorString -ButtonType OK -MessageIcon Hand -MessageTitle 'Error' } else { $ADLookups_GroupTabGroupNameTextBox.Text = $OutputObject.Name $ADLookups_GroupTabSamAccountNameTextBox.Text = $OutputObject.SamAccountName $ADLookups_GroupTabDNTextBox.Text = $OutputObject.DistinguishedName $ADLookups_GroupTabEmailTextBox.Text = $OutputObject.Mail $ADLookups_GroupTabUniversalRadioButton.IsChecked = $false $ADLookups_GroupTabGlobalRadioButton.IsChecked = $false $ADLookups_GroupTabDomainLocalRadioButton.IsChecked = $false $ADLookups_GroupTabDistributionRadioButton.IsChecked = $false $ADLookups_GroupTabSecurityRadioButton.IsChecked = $false switch ($OutputObject.GroupScope) { { ($_ -eq 'Universal') -or ($_ -eq '2') } { $ADLookups_GroupTabUniversalRadioButton.IsChecked = $true } { ($_ -eq 'Global') -or ($_ -eq '1') } { $ADLookups_GroupTabGlobalRadioButton.IsChecked = $true } { ($_ -eq 'DomainLocal') -or ($_ -eq '0') } { $ADLookups_GroupTabDomainLocalRadioButton.IsChecked = $true } } switch ($OutputObject.GroupCategory) { { ($_ -eq 'Distribution') -or ($_ -eq '0') } { $ADLookups_GroupTabDistributionRadioButton.IsChecked = $true } { ($_ -eq 'Security') -or ($_ -eq '1') } { $ADLookups_GroupTabSecurityRadioButton.IsChecked = $true } } if ($OutputObject.Description) { $ADLookups_GroupTabDescriptionTextBox.Text = $OutputObject.Description } else { $ADLookups_GroupTabDescriptionTextBox.Text = 'None.' } try { if ($ADLookups_GroupTabMembersRecursiveCheckBox.IsChecked) { $GroupMemberSplat = @{ Identity = $OutputObject.SamAccountName Recursive = $true Server = $STTSettings.DCSettings.DomainController } } else { $GroupMemberSplat = @{ Identity = $OutputObject.SamAccountName Server = $STTSettings.DCSettings.DomainController } } $Members = @() if ($ADLookups_GroupTabMembersRadioButton.IsChecked) { $Members += [PSCustomObject](Get-ADGroupMember @GroupMemberSplat | Select-Object name, SamAccountName, objectClass, DistinguishedName | Sort-Object name) } elseif ($ADLookups_GroupTabMembersOfRadioButton.IsChecked) { $MemberOfGroups = Get-ADGroup @GroupMemberSplat -Properties MemberOf | Select-Object -ExpandProperty MemberOf foreach ($Group in $MemberOfGroups) { $MemberGroup = Get-ADGroup $Group | Select-Object Name, SamAccountName, GroupCategory, GroupScope, DistinguishedName | Sort-Object Name $Members += [PSCustomObject]$MemberGroup } } } catch { $Members = @() $Members += [pscustomobject]@{ Error = 'Error getting group members' } } if (($Members | Measure-Object).count -eq 0) { $Members = @() $Members += [pscustomobject]@{ Output = 'No Members' } } $Script:PossibleExport = $Members $ADLookups_GroupTabMembersDataGrid.ItemsSource = $Members $ADLookups_GroupTabMemberCountLabel.Content = "Members count: $($($Members | Measure-Object).count)" } } |