Private/ADLookups/_UserGroupsTabLookup.ps1
function _UserGroupsTabLookup { $OutputObject = $AllUsers | Where-Object SamAccountName -EQ $ADLookups_UsersGroupsTabSamAccountNameComboBox.Text if ($null -eq $OutputObject) { $ErrorString = "Unable to validate provided username. Make sure this is a SamAccountName.`nYou can verify this in the first tab, 'Find'." _ShowMessageBox -MessageText $ErrorString -ButtonType OK -MessageIcon Warning -MessageTitle "User's Group Tab Error" } else { $UserGroups = $OutputObject | Select-Object -ExpandProperty MemberOf $Groups = @() foreach ($Group in $UserGroups) { try { $Groups += [pscustomobject](Get-ADGroup @GetObjectSplat -Identity $Group) } catch { Write-Warning 'Group name mismatch.' $Groups += [pscustomobject]@{ Name = $Group } } } $Headers = [ordered]@{ 'Name' = [string] 'SamAccountName' = [string] 'GroupCategory' = [string] 'GroupScope' = [string] 'DistinguishedName' = [string] } $Script:UsersGroupsDataTable = New-Object System.Data.DataTable foreach ($Header in $Headers.GetEnumerator()) { $UsersGroupsDataTable.Columns.Add($Header.Key, $Header.Value) } foreach ($Item in $Groups) { $Array = @() Foreach ($Header in $Headers.GetEnumerator()) { $array += [string]$Item.$($Header.Key) } [void]$UsersGroupsDataTable.Rows.Add($array) } $ADLookups_UsersGroupTabDataGrid.ItemsSource = $UsersGroupsDataTable.DefaultView } } |