Private/ADLookups/_FindTabLookup.ps1
function _FindTabLookup { $ADLookups_FindTabInformationTextBox.Text = '' $ObjectToLookUp = $ADLookups_FindTabQueryTextTextBox.Text $ObjectTypeToCheck = $ADLookups_FindTabObjectTypeComboBox.Text $SearchStyle = $ADLookups_FindTabSearchStyleComboBox.Text try { switch ($ObjectTypeToCheck) { 'User' { if ($ObjectToLookUp.length -ge 1) { $Output = _GetUserName -NameToSearch $ObjectToLookUp -SearchStyle $SearchStyle | Select-Object SamAccountName, Department, EmailAddress, @{Name = 'Status'; Expression = { if (!($_.Enabled)) {'Disabled'} else {'Enabled'} }}, DistinguishedName | Sort-Object SamAccountName } else { $ADLookups_FindTabInformationTextBox.Text = 'Type at least 1 character to search.' } $Count = ($Output | Measure-Object).count if ($Count -ge 20) { $ADLookups_FindTabInformationTextBox.Text = 'Returning the first 20 results.' } else { $ADLookups_FindTabInformationTextBox.Text += "Found $Count items." } if ($Count -eq 1) { $ADLookups_FindTabInformationTextBox.Text += " Username copied to the 'General User' tab." $ADLookups_UserTabSamAccountNameComboBox.SelectedItem = $Output.SamAccountName } } 'Computer' { if ($ObjectToLookUp.length -ge 1) { $Output = _GetComputerName -NameToSearch $ObjectToLookUp -SearchStyle $SearchStyle | Select-Object Name, created, IPv4Address | Sort-Object Name } else { $ADLookups_FindTabInformationTextBox.Text = 'Type at least 1 character to search.' } $Count = ($Output | Measure-Object).count if ($Count -ge 20) { $ADLookups_FindTabInformationTextBox.Text = 'Returning the first 20 results.' } else { $ADLookups_FindTabInformationTextBox.Text += "Found $Count items." } if ($Count -eq 1) { $ADLookups_FindTabInformationTextBox.Text += " Hostname copied to the 'Computer' tab." $ADLookups_ComputerTabHostNameComboBox.SelectedItem = $Output.Name } } 'Group' { if ($ObjectToLookUp.length -ge 1) { $Output = _GetGroupName -NameToSearch $ObjectToLookUp -SearchStyle $SearchStyle | Select-Object Name, SamAccountName, Description | Sort-Object Name } else { $ADLookups_FindTabInformationTextBox.Text = 'Type at least 1 character to search.' } $Count = ($Output | Measure-Object).count if ($Count -ge 20) { $ADLookups_FindTabInformationTextBox.Text = 'Returning the first 20 results.' } else { $ADLookups_FindTabInformationTextBox.Text += "Found $Count items." } if ($Count -eq 1) { $ADLookups_FindTabInformationTextBox.Text += " Group name copied to the 'Group' tab." $ADLookups_GroupTabSamAccountNameComboBox.SelectedItem = $Output.Name } } 'Service Account' { if ($ObjectToLookUp.length -ge 1) { $Output = _GetServiceAccount -NameToSearch $ObjectToLookUp -SearchStyle $SearchStyle | Select-Object Name, SamAccountName, Description | Sort-Object Name } else { $ADLookups_FindTabInformationTextBox.Text = 'Type at least 1 character to search.' } $Count = ($Output | Measure-Object).count if ($Count -ge 20) { $ADLookups_FindTabInformationTextBox.Text = 'Returning the first 20 results.' } else { $ADLookups_FindTabInformationTextBox.Text += "Found $Count items." } } 'Contact' { if ($ObjectToLookUp.length -ge 1) { $Output = _GetContactName -NameToSearch $ObjectToLookUp -SearchStyle $SearchStyle | Sort-Object Name } else { $ADLookups_FindTabInformationTextBox.Text = 'Type at least 1 character to search.' } $Count = ($Output | Measure-Object).count if ($Count -ge 20) { $ADLookups_FindTabInformationTextBox.Text = 'Returning the first 20 results.' } else { $ADLookups_FindTabInformationTextBox.Text += "Found $Count items." } } "User's Computer" { if ($ObjectToLookUp.length -ge 1) { # TODO make sure this is returning unique results. $Output = _GetUserLocationAndHostname -NameToSearch $ObjectToLookup | Sort-Object Hostname } else { $ADLookups_FindTabInformationTextBox.Text = 'Type at least 1 character to search.' } } default { $Output = 'Invalid Option' } } } catch { $Output = "ERROR!`n$_" } $OutputObject = @() foreach ($Object in $Output) { $OutputObject += $Object } $ADLookups_FindTabDataGrid.DataContext = $OutputObject } |