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)"
    }
}