Private/ADLookups/_ADLookupsUIEvents.ps1
function _ADLookupsUIEvents { #region General UI $ADLookups.Add_SourceInitialized({ _OnADLookupsSourceInitialized }) $ADLookups.Add_Activated({ if ($HomeWindow) { $HomeWindow_LoadingLabel.Visibility = 'Hidden' } }) $ADLookups.Add_Closing({ if ($HomeWindow) { $_.Cancel = $true $ADLookups.hide() } else { # $ADLookups.close() } }) $ADLookups_ExitMenuItem.Add_Click({ # exit if ($HomeWindow) { $ADLookups.hide() } else { $ADLookups.close() } }) $ADLookups_UpdateCacheMenuItem.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _UpdateObjectCache -Force $ADLookups.Cursor = $null }) $ADLookups_UpdateSCCMDevicesMenuItem.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait # This should use an API query instead of invoke-command _UpdateSCCMDevices -ForceLookup $ADLookups.Cursor = $null }) #endregion #region Find Tab $ADLookups_FindTabQueryTextTextBox.Add_TextChanged({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _FindTabLookup $ADLookups.Cursor = $null }) $ADLookups_FindTabQueryTextTextBox.Add_KeyDown({ if ($_.Key -eq 'Enter') { $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _FindTabLookup $ADLookups.Cursor = $null } }) $ADLookups_FindTabCopyContextMenuItem.Add_Click({ $selectedCell = $ADLookups_FindTabDataGrid.SelectedCells[0] $value = $selectedCell.Item.($selectedCell.Column.Header) Set-Clipboard -Value $value }) $ADLookups_FindTabDropdownButton.Add_Click({ # This uses the Marlett font. $UpArrow = '5' $DownArrow = '6' switch ($ADLookups_FindTabDropdownButton.Content) { $UpArrow { $ADLookups_FindTabSearchStackPanel.Visibility = 'Collapsed' $ADLookups_FindTabDropdownButton.Content = $DownArrow } $DownArrow { $ADLookups_FindTabSearchStackPanel.Visibility = 'Visible' $ADLookups_FindTabDropdownButton.Content = $UpArrow } Default { } } }) #endregion #region General User Tab $ADLookups_UserTabLookupButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _GeneralUserTabLookup $ADLookups.Cursor = $null }) $ADLookups_UserTabSamAccountNameComboBox.Add_KeyDown({ if ($_.Key -eq 'Enter') { $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _GeneralUserTabLookup $ADLookups.Cursor = $null } }) $ADLookups_UserTabDisableUserButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait $MessageSplat = @{ MessageText = "Do you want to disable $($ADLookups_UserTabSamAccountNameComboBox.Text)?" MessageIcon = 'Asterisk' ButtonType = 'YesNo' MessageTitle = 'Disable user account' } $Response = _ShowMessageBox @MessageSplat switch ($Response) { Yes { Set-ADUser -Identity $ADLookups_UserTabSamAccountNameComboBox.Text -Enabled $false $UserResult = Get-ADUser -Identity $ADLookups_UserTabSamAccountNameComboBox.Text if ($UserResult.Enabled) { $MessageSplat = @{ MessageText = 'Account was disabled.' MessageIcon = 'Asterisk' ButtonType = 'Ok' MessageTitle = 'Disable user account' } $ADLookups_UserTabDisableUserButton.IsEnabled = $false } else { $MessageSplat = @{ MessageText = 'Unable to disable account.' MessageIcon = 'Hand' ButtonType = 'Ok' MessageTitle = 'Error' } } _ShowMessageBox @MessageSplat } No { # Carry on } Default { } } $ADLookups.Cursor = $null }) $ADLookups_UserTabEnableUserButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait $MessageSplat = @{ MessageText = "Do you want to enable $($ADLookups_UserTabSamAccountNameComboBox.Text)?" MessageIcon = 'Asterisk' ButtonType = 'YesNo' MessageTitle = 'Enable user account' } $Response = _ShowMessageBox @MessageSplat switch ($Response) { Yes { Set-ADUser -Identity $ADLookups_UserTabSamAccountNameComboBox.Text -Enabled $true $UserResult = Get-ADUser -Identity $ADLookups_UserTabSamAccountNameComboBox.Text if ($UserResult.Enabled) { $MessageSplat = @{ MessageText = 'Account was enabled.' MessageIcon = 'Asterisk' ButtonType = 'Ok' MessageTitle = 'Enable user account' } $ADLookups_UserTabEnableUserButton.IsEnabled = $false } else { $MessageSplat = @{ MessageText = 'Unable to enable account.' MessageIcon = 'Hand' ButtonType = 'Ok' MessageTitle = 'Error' } } _ShowMessageBox @MessageSplat } No { # Carry on } Default { } } $ADLookups.Cursor = $null }) $ADLookups_UserTabUnlockUserButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait $MessageSplat = @{ MessageText = "Do you want to unlock $($ADLookups_UserTabSamAccountNameComboBox.Text)?" MessageIcon = 'Asterisk' ButtonType = 'YesNo' MessageTitle = 'Unlock user account' } $Response = _ShowMessageBox @MessageSplat switch ($Response) { Yes { Unlock-ADAccount -Identity $ADLookups_UserTabSamAccountNameComboBox.Text $UserResult = Get-ADUser -Identity $ADLookups_UserTabSamAccountNameComboBox.Text -Properties LockedOut if ($UserResult.LockedOut) { $MessageSplat = @{ MessageText = 'Account was unlocked.' MessageIcon = 'Asterisk' ButtonType = 'Ok' MessageTitle = 'Unlock user account' } $ADLookups_UserTabUnlockUserButton.IsEnabled = $false } else { $MessageSplat = @{ MessageText = 'Unable to unlock account.' MessageIcon = 'Hand' ButtonType = 'Ok' MessageTitle = 'Error' } } _ShowMessageBox @MessageSplat } No { # Carry on } Default { } } $ADLookups.Cursor = $null }) $ADLookups_UserTabCollectionButton.Add_Click({ }) #endregion #region User's Groups Tab $ADLookups_UsersGroupsTabLookupButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _UserGroupsTabLookup $ADLookups.Cursor = $null }) $ADLookups_UsersGroupsTabSamAccountNameComboBox.Add_KeyDown({ if ($_.Key -eq 'Enter') { $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _UserGroupsTabLookup $ADLookups.Cursor = $null } }) $ADLookups_UsersGroupTabCopyContextMenuItem.Add_Click({ $selectedCell = $ADLookups_UsersGroupTabDataGrid.SelectedCells[0] $value = $selectedCell.Item.($selectedCell.Column.Header) Set-Clipboard -Value $value }) #endregion #region User's Exchange Tab $ADLookups_ExchangeTabLookupButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _UsersExchangeTabLookup $ADLookups.Cursor = $null }) $ADLookups_ExchangeTabSamAccountNameComboBox.Add_KeyDown({ if ($_.Key -eq 'Enter') { $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _UsersExchangeTabLookup $ADLookups.Cursor = $null } }) #endregion #region Group Tab $ADLookups_GroupTabLookupButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _GroupsTabLookup $ADLookups.Cursor = $null }) $ADLookups_GroupTabSamAccountNameComboBox.Add_KeyDown({ if ($_.Key -eq 'Enter') { $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _GroupsTabLookup $ADLookups.Cursor = $null } }) $ADLookups_GroupTabCopyContextMenuItem.Add_Click({ $selectedCell = $ADLookups_GroupTabMembersDataGrid.SelectedCells[0] $value = $selectedCell.Item.($selectedCell.Column.Header) Set-Clipboard -Value $value }) $ADLookups_GroupTabExportMembersMenuItem.Add_Click({ $SaveDialog = New-Object System.Windows.Forms.SaveFileDialog $SaveDialog.DefaultExt = '.csv' $SaveDialog.InitialDirectory = $STTSettings.ObjectsSettings.ObjectStorageFolder $SaveDialog.Filter = 'Comma Delimited | *.csv' $SaveDialog.Title = 'Export Group Listing' $Output = $SaveDialog.ShowDialog() if ($Output -eq 'OK') { $PossibleExport | Export-Csv -Path $SaveDialog.FileName -NoTypeInformation } }) $ADLookups_GroupTabMembersOfRadioButton.Add_Checked({ $ADLookups_GroupTabMembersRecursiveCheckBox.IsChecked = $false $ADLookups_GroupTabMembersRecursiveCheckBox.IsEnabled = $false $Members = @() $Members += [pscustomobject]@{ Refresh = 'Click Lookup to load membership.' } $ADLookups_GroupTabMembersDataGrid.ItemsSource = $Members }) $ADLookups_GroupTabMembersRadioButton.Add_Checked({ $ADLookups_GroupTabMembersRecursiveCheckBox.IsEnabled = $true $Members = @() $Members += [pscustomobject]@{ Refresh = 'Click Lookup to load membership.' } $ADLookups_GroupTabMembersDataGrid.ItemsSource = $Members }) #endregion #region Computer Tab $ADLookups_ComputerTabLookupButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _ComputerTabLookup $ADLookups.Cursor = $null }) $ADLookups_ComputerTabHostNameComboBox.Add_KeyDown({ if ($_.Key -eq 'Enter') { $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait _ComputerTabLookup $ADLookups.Cursor = $null } }) $ADLookups_ComputerTabRSOPButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if (!$RSOP) { _NewXAMLWindow -FormName 'RSOP' _RSOPWindowUIEvents } $RSOP_HostnameComboBox.SelectedItem = $ADLookups_ComputerTabHostNameComboBox.Text $RSOP.ShowDialog() $ADLookups.Cursor = $null }) $ADLookups_ComputerTabQueryLiveButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if ($ADLookups_ComputerTabHostNameComboBox.Text) { $ComputerStats_ComputersComboBox.Text = $ADLookups_ComputerTabHostNameComboBox.Text _ComputerTabQuery -Identity $ADLookups_ComputerTabHostNameComboBox.Text } else { $MessageSplat = @{ MessageText = 'Please provide a computer hostname' MessageIcon = 'Hand' ButtonType = 'OK' MessageTitle = 'Error' } _ShowMessageBox @MessageSplat } $ADLookups.Cursor = $null }) $ADLookups_ComputerTabShowApplicationsButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if ($ADLookups_ComputerTabHostNameComboBox.Text) { if (!$ComputerStats) { _NewXAMLWindow -FormName 'ComputerStats' _ComputerStatsUIEvents } $ComputerStats_ComputersComboBox.Text = $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats_TypeComboBox.Text = 'Installed Software' _PopulateComputerStats -LookupType Software -Identity $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats.ShowDialog() } else { $MessageSplat = @{ MessageText = 'Please provide a computer hostname' MessageIcon = 'Hand' ButtonType = 'OK' MessageTitle = 'Error' } _ShowMessageBox @MessageSplat } $ADLookups.Cursor = $null }) $ADLookups_ComputerTabShowInstalledUpdatesButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if ($ADLookups_ComputerTabHostNameComboBox.Text) { if (!$ComputerStats) { _NewXAMLWindow -FormName 'ComputerStats' _ComputerStatsUIEvents } $ComputerStats_ComputersComboBox.Text = $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats_TypeComboBox.Text = 'Windows Updates' _PopulateComputerStats -LookupType Updates -Identity $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats.ShowDialog() } else { $MessageSplat = @{ MessageText = 'Please provide a computer hostname' MessageIcon = 'Hand' ButtonType = 'OK' MessageTitle = 'Error' } _ShowMessageBox @MessageSplat } $ADLookups.Cursor = $null }) $ADLookups_ComputerTabProcessesButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if ($ADLookups_ComputerTabHostNameComboBox.Text) { if (!$ComputerStats) { _NewXAMLWindow -FormName 'ComputerStats' _ComputerStatsUIEvents } $ComputerStats_ComputersComboBox.Text = $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats_TypeComboBox.Text = 'Running Processes' _PopulateComputerStats -LookupType Processes -Identity $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats.ShowDialog() } else { $MessageSplat = @{ MessageText = 'Please provide a computer hostname' MessageIcon = 'Hand' ButtonType = 'OK' MessageTitle = 'Error' } _ShowMessageBox @MessageSplat } $ADLookups.Cursor = $null }) $ADLookups_ComputerTabServicesButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if ($ADLookups_ComputerTabHostNameComboBox.Text) { if (!$ComputerStats) { _NewXAMLWindow -FormName 'ComputerStats' _ComputerStatsUIEvents } $ComputerStats_ComputersComboBox.Text = $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats_TypeComboBox.Text = 'Services' _PopulateComputerStats -LookupType Services -Identity $ADLookups_ComputerTabHostNameComboBox.Text $ComputerStats.ShowDialog() } else { $MessageSplat = @{ MessageText = 'Please provide a computer hostname' MessageIcon = 'Hand' ButtonType = 'OK' MessageTitle = 'Error' } _ShowMessageBox @MessageSplat } $ADLookups.Cursor = $null }) $ADLookups_ComputerTabCDollarButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait if ($ADLookups_ComputerTabHostNameComboBox.Text) { $Hostname = $ADLookups_ComputerTabHostNameComboBox.Text Invoke-Item "\\$Hostname\C$" } else { $MessageSplat = @{ MessageText = 'Please provide a computer hostname' MessageIcon = 'Hand' ButtonType = 'OK' MessageTitle = 'Error' } _ShowMessageBox @MessageSplat } $ADLookups.Cursor = $null }) $ADLookups_ComputerTabCollectionButton.Add_Click({ $ADLookups.Cursor = [System.Windows.Input.Cursors]::Wait $Collections = @() try { $CollectionIDs = _GetSCCMInformationQuerySTT -Route wmi -Connector SMS_FullCollectionMembership -FilterField Name -FilterString $ADLookups_ComputerTabHostNameComboBox.Text foreach ($ID in $CollectionIDs) { $Object = _GetSCCMInformationQuerySTT -Route wmi -Connector sms_collection -FilterField CollectionID -FilterString $ID.CollectionID $Collections += [PSCustomObject]@{ CollectionID = $Object.CollectionID Name = $Object.name LimitToCollectionName = $Object.LimitToCollectionName } } } catch { $Collections += [pscustomobject]@{ Error = 'Error getting collections' } } $ADLookups_ComputerTabCollectionMembershipDataGrid.ItemsSource = $Collections $ADLookups.Cursor = $null }) #endregion } |