pcdiag.ps1


<#PSScriptInfo
 
.VERSION 2.0
 
.GUID 3954da33-0938-4f4e-9249-ebb7dfad3f98
 
.AUTHOR
    Author: Justin Serlick
    Email: jserlick@gmail.com
 
.COMPANYNAME
    None
 
.COPYRIGHT
    8/8/2017
 
.TAGS
    PCDiag
 
.LICENSEURI
 
.PROJECTURI
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
    ActiveDirectory
    Msolonline
 
.RELEASENOTES
    INFO: If script does not run you will need to change the computer's execution policy
            to do this start an elevated instance of powershell, run as "Administrator" and run "set-executionpolicy remotesigned"
     
    Prerequisite: PowerShell V 3.0 or Higher *Most functions work with PowerShell V 2.0
     
    Working Directory: C:\PCDiag\
     
    Credit for External Scripts
        : Self Elevating script - https://blogs.msdn.microsoft.com/virtual_pc_guy/2010/09/23/a-self-elevating-powershell-script
        : O365 Report script - https://gallery.technet.microsoft.com/office/Get-Office-365-Report-17417c2a
 
    REVISION HISTORY :
    Version Date Description of changes
    -----------------------------------------------------------------------------------------------------------------
    1.0 12/7/2016 - Established baseline of Version 1.0
    1.0 12/19/2016 - O365 Exchange Operations - added O365 Report & Disable Clutter Function
    1.0 12/21/2016 - Added w32tm query to all automatic data collection operations
    1.1 02/12/2017 - Modified script to create timestamped directories in the working directory
    1.1 02/15/2017 - Updated scripts with output targets to create files in timestamped directory
    1.1 02/16/2017 - Added version indicators in script segments comments
    1.1 02/16/2017 - Added Main Menu Option 7 - Local Exchange Operations
    1.1 02/21/2017 - Combined Automatic Data Collection scripts into a sub menu
    1.1 03/29/2017 - Added yellow color to Quit options for menus
    1.1 03/29/2017 - Added 2 new Main menu options, option 9 & 0
    1.1 04/07/2017 - Added script to connect to Local Exchange servers
    1.1 04/19/2017 - Renamed Main Menu Option 6 to "Network Operations", moved menu options to menu Manual Operations
    1.1 04/19/2017 - Added Main Menu Option 8 "Powershell Gallery"
    1.1 04/19/2017 - Added new function List all GPO settings in Main Menu Option 3 Active Directory & Domain Operations
    1.1 04/19/2017 - Added new function Reset Network Adapter in Main Menu Option 1 Manual Operations
    1.1 04/20/2017 - Added new Working Directory PSG to be used for powershell gallery repository
    1.1 07/13/2017 - Added new function List Certicate Authority in Main Menu Option 3 Active Directory & Domain Operation
    1.1 08/08/2017 - Updated Scriptfileinfo to meet Powershell Gallery requirements
    1.1 08/08/2017 - Uploaded script to The Powershell Gallery
    1.1 08/08/2017 - Working on Version 2.0, complete rework with windows GUI
    2.0 02/15/2018 - Complete rework of script to windows GUI
 
 
.PRIVATEDATA
 
#>


<#
 
.DESCRIPTION
 PCDiag is a GUI based tool that contains manual diagnostic commands, O365 management scripts, Active Directory scripts, Remote Management scripts & mutliple automatic data collection scripts for Windows based Workstations & Servers
 
#>
 
Param()

<# Start of PCDiag Script Code #>

# Self Elevating script
$myWindowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent();
$myWindowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($myWindowsID);
$adminRole = [System.Security.Principal.WindowsBuiltInRole]::Administrator;

if ($myWindowsPrincipal.IsInRole($adminRole))
{
    $Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)";
    $Host.UI.RawUI.BackgroundColor = "DarkBlue";
    Clear-Host;
}
else
{
    $newProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell" ;
    $newProcess.Arguments = "-windowstyle hidden & '" + $script:MyInvocation.MyCommand.Path + "'"
    $newProcess.Verb = "runas";
    [System.Diagnostics.Process]::start($newProcess); 
    Exit;
}

# Computer Name and information
$ComputerName = [system.environment]::MachineName 

# OS Version variable
$OSVER = (Get-WmiObject Win32_OperatingSystem).caption
$OSNAME = $OSVER.split(" ")
$OS = $OSNAME[2, 3]

# Date-time variable
$enus = 'en-US' -as [Globalization.CultureInfo]
$Date = (Get-Date).AddDays(0).ToString("MM_dd_yyyy_hh_mm_tt", $enus)
$Dt = $Date

# Creates Working Directory for Output files
New-Item -ItemType Directory -Force -Path C:\PCDiag > $nullq
New-Item -ItemType Directory -Force -Path C:\PCDiag\Scripts > $nullq
New-Item -ItemType Directory -Force -Path C:\PCDiag\$Date > $nullq
New-Item -ItemType Directory -Force -Path C:\PCDiag\PSG > $nullq

# Output Path
$PCDPath = "c:\PCDiag\$Dt\"


#region Script Settings
#<ScriptSettings xmlns="http://tempuri.org/ScriptSettings.xsd">
# <ScriptPackager>
# <process>powershell.exe</process>
# <arguments />
# <extractdir>%TEMP%</extractdir>
# <files />
# <usedefaulticon>true</usedefaulticon>
# <showinsystray>false</showinsystray>
# <altcreds>false</altcreds>
# <efs>true</efs>
# <ntfs>true</ntfs>
# <local>false</local>
# <abortonfail>true</abortonfail>
# <product />
# <version>1.0.0.1</version>
# <versionstring />
# <comments />
# <company />
# <includeinterpreter>false</includeinterpreter>
# <forcecomregistration>false</forcecomregistration>
# <consolemode>false</consolemode>
# <EnableChangelog>false</EnableChangelog>
# <AutoBackup>false</AutoBackup>
# <snapinforce>false</snapinforce>
# <snapinshowprogress>false</snapinshowprogress>
# <snapinautoadd>2</snapinautoadd>
# <snapinpermanentpath />
# <cpumode>1</cpumode>
# <hidepsconsole>false</hidepsconsole>
# </ScriptPackager>
#</ScriptSettings>
#endregion

#region ScriptForm Designer

#region Constructor

[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

#endregion

#region Post-Constructor Custom Code

#endregion

#region Form Creation
#Warning: It is recommended that changes inside this region be handled using the ScriptForm Designer.
#When working with the ScriptForm designer this region and any changes within may be overwritten.
#~~< MainMenu >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MainMenu = New-Object System.Windows.Forms.Form
$MainMenu.ClientSize = New-Object System.Drawing.Size(1157, 735)
$MainMenu.Text = "PCDiag"
#~~< PCDiag_Output_Log >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PCDiag_Output_Log = New-Object System.Windows.Forms.Label
$PCDiag_Output_Log.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.75, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.Byte](0)))
$PCDiag_Output_Log.Location = New-Object System.Drawing.Point(4, 320)
$PCDiag_Output_Log.Size = New-Object System.Drawing.Size(250, 24)
$PCDiag_Output_Log.TabIndex = 9
$PCDiag_Output_Log.Text = "PCDiag Output Log"
$PCDiag_Output_Log.TextAlign = [System.Drawing.ContentAlignment]::BottomLeft
#~~< FL_Zip_Selected >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$FL_Zip_Selected = New-Object System.Windows.Forms.Button
$FL_Zip_Selected.Location = New-Object System.Drawing.Point(1049, 430)
$FL_Zip_Selected.Size = New-Object System.Drawing.Size(96, 32)
$FL_Zip_Selected.TabIndex = 8
$FL_Zip_Selected.Text = "Zip Selected"
$FL_Zip_Selected.UseVisualStyleBackColor = $true
$FL_Zip_Selected.add_Click({FL_Zip_Selected_Click($FL_Zip_Selected)})
#~~< FL_Open_Location >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$FL_Open_Location = New-Object System.Windows.Forms.Button
$FL_Open_Location.Location = New-Object System.Drawing.Point(1049, 354)
$FL_Open_Location.Size = New-Object System.Drawing.Size(96, 32)
$FL_Open_Location.TabIndex = 7
$FL_Open_Location.Text = "Open Location"
$FL_Open_Location.UseVisualStyleBackColor = $true
$FL_Open_Location.add_Click({FL_Open_Location_Click($FL_Open_Location)})
#~~< FL_Open_Selected >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$FL_Open_Selected = New-Object System.Windows.Forms.Button
$FL_Open_Selected.Location = New-Object System.Drawing.Point(1049, 392)
$FL_Open_Selected.Size = New-Object System.Drawing.Size(96, 32)
$FL_Open_Selected.TabIndex = 6
$FL_Open_Selected.Text = "Open Selected"
$FL_Open_Selected.UseVisualStyleBackColor = $true
$FL_Open_Selected.add_Click({FL_Open_Selected_Click($FL_Open_Selected)})
#~~< PCDiag_Working_Directory_File_List >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PCDiag_Working_Directory_File_List = New-Object System.Windows.Forms.Label
$PCDiag_Working_Directory_File_List.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.75, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.Byte](0)))
$PCDiag_Working_Directory_File_List.Location = New-Object System.Drawing.Point(790, 320)
$PCDiag_Working_Directory_File_List.Size = New-Object System.Drawing.Size(250, 24)
$PCDiag_Working_Directory_File_List.TabIndex = 5
$PCDiag_Working_Directory_File_List.Text = "PCDiag Working Directory File List"
$PCDiag_Working_Directory_File_List.TextAlign = [System.Drawing.ContentAlignment]::BottomLeft
#~~< CheckedListBox1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$CheckedListBox1 = New-Object System.Windows.Forms.CheckedListBox
$CheckedListBox1.FormattingEnabled = $true
$CheckedListBox1.Location = New-Object System.Drawing.Point(790, 354)
$CheckedListBox1.SelectedIndex = -1
$CheckedListBox1.Size = New-Object System.Drawing.Size(253, 334)
$CheckedListBox1.TabIndex = 4
#~~< Outputbox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Outputbox = New-Object System.Windows.Forms.RichTextBox
$Outputbox.Location = New-Object System.Drawing.Point(4, 354)
$Outputbox.Size = New-Object System.Drawing.Size(767, 334)
$Outputbox.TabIndex = 3
$Outputbox.Text = ""
$Outputbox.BackColor = [System.Drawing.SystemColors]::Window
#~~< TabControl1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TabControl1 = New-Object System.Windows.Forms.TabControl
$TabControl1.Location = New-Object System.Drawing.Point(0, 136)
$TabControl1.Size = New-Object System.Drawing.Size(1161, 181)
$TabControl1.SizeMode = [System.Windows.Forms.TabSizeMode]::FillToRight
$TabControl1.TabIndex = 0
$TabControl1.Text = ""
#~~< ManualOperations >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ManualOperations = New-Object System.Windows.Forms.TabPage
$ManualOperations.AutoScroll = $true
$ManualOperations.Location = New-Object System.Drawing.Point(4, 22)
$ManualOperations.Padding = New-Object System.Windows.Forms.Padding(3)
$ManualOperations.Size = New-Object System.Drawing.Size(1153, 155)
$ManualOperations.TabIndex = 0
$ManualOperations.Text = "Manual Operations"
$ManualOperations.UseVisualStyleBackColor = $true
#~~< MO_ResetWindowsUpdate >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MO_ResetWindowsUpdate = New-Object System.Windows.Forms.Button
$MO_ResetWindowsUpdate.Location = New-Object System.Drawing.Point(647, 16)
$MO_ResetWindowsUpdate.Size = New-Object System.Drawing.Size(144, 32)
$MO_ResetWindowsUpdate.TabIndex = 6
$MO_ResetWindowsUpdate.Text = "Reset Windows Update"
$MO_ResetWindowsUpdate.UseVisualStyleBackColor = $true
$MO_ResetWindowsUpdate.add_Click({MO_ResetWindowsUpdate_Click($MO_ResetWindowsUpdate)})
#~~< MO_FlushDNS >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MO_FlushDNS = New-Object System.Windows.Forms.Button
$MO_FlushDNS.Location = New-Object System.Drawing.Point(8, 16)
$MO_FlushDNS.Size = New-Object System.Drawing.Size(96, 32)
$MO_FlushDNS.TabIndex = 1
$MO_FlushDNS.Text = "Flush DNS"
$MO_FlushDNS.UseVisualStyleBackColor = $true
$MO_FlushDNS.add_Click({MO_FlushDNS_Click($MO_FlushDNS)})
#~~< MO_ClearARPCache >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MO_ClearARPCache = New-Object System.Windows.Forms.Button
$MO_ClearARPCache.Location = New-Object System.Drawing.Point(119, 16)
$MO_ClearARPCache.Size = New-Object System.Drawing.Size(104, 32)
$MO_ClearARPCache.TabIndex = 2
$MO_ClearARPCache.Text = "Clear ARP Cache"
$MO_ClearARPCache.UseVisualStyleBackColor = $true
$MO_ClearARPCache.add_Click({MO_ClearARPCache_Click($MO_ClearARPCache)})
#~~< MO_StartSFCScan >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MO_StartSFCScan = New-Object System.Windows.Forms.Button
$MO_StartSFCScan.Location = New-Object System.Drawing.Point(238, 16)
$MO_StartSFCScan.Size = New-Object System.Drawing.Size(88, 32)
$MO_StartSFCScan.TabIndex = 3
$MO_StartSFCScan.Text = "Start SFC Scan"
$MO_StartSFCScan.UseVisualStyleBackColor = $true
$MO_StartSFCScan.add_Click({MO_StartSFCScan_Click($MO_StartSFCScan)})
#~~< MO_ScheduleOfflineCHKDSK >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MO_ScheduleOfflineCHKDSK = New-Object System.Windows.Forms.Button
$MO_ScheduleOfflineCHKDSK.Location = New-Object System.Drawing.Point(344, 16)
$MO_ScheduleOfflineCHKDSK.Size = New-Object System.Drawing.Size(144, 32)
$MO_ScheduleOfflineCHKDSK.TabIndex = 4
$MO_ScheduleOfflineCHKDSK.Text = "Schedule Offline CHKDSK"
$MO_ScheduleOfflineCHKDSK.UseVisualStyleBackColor = $true
$MO_ScheduleOfflineCHKDSK.add_Click({MO_ScheduleOfflineCHKDSK_Click($MO_ScheduleOfflineCHKDSK)})
#~~< MO_ResetNetworkAdapter >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MO_ResetNetworkAdapter = New-Object System.Windows.Forms.Button
$MO_ResetNetworkAdapter.Location = New-Object System.Drawing.Point(504, 16)
$MO_ResetNetworkAdapter.Size = New-Object System.Drawing.Size(128, 32)
$MO_ResetNetworkAdapter.TabIndex = 5
$MO_ResetNetworkAdapter.Text = "Reset Network Adapter"
$MO_ResetNetworkAdapter.UseVisualStyleBackColor = $true
$MO_ResetNetworkAdapter.add_Click({MO_ResetNetworkAdapter_Click($MO_ResetNetworkAdapter)})
$ManualOperations.Controls.Add($MO_ResetWindowsUpdate)
$ManualOperations.Controls.Add($MO_FlushDNS)
$ManualOperations.Controls.Add($MO_ClearARPCache)
$ManualOperations.Controls.Add($MO_StartSFCScan)
$ManualOperations.Controls.Add($MO_ScheduleOfflineCHKDSK)
$ManualOperations.Controls.Add($MO_ResetNetworkAdapter)
$ManualOperations.add_Click({Reset_Windows_Update_Click($ManualOperations)})
#~~< AutomaticDataCollection >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$AutomaticDataCollection = New-Object System.Windows.Forms.TabPage
$AutomaticDataCollection.Location = New-Object System.Drawing.Point(4, 22)
$AutomaticDataCollection.Padding = New-Object System.Windows.Forms.Padding(3)
$AutomaticDataCollection.Size = New-Object System.Drawing.Size(1153, 155)
$AutomaticDataCollection.TabIndex = 1
$AutomaticDataCollection.Text = "Automatic Data Collection"
$AutomaticDataCollection.UseVisualStyleBackColor = $true
#~~< ADC_NonDomainControllerServer >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ADC_NonDomainControllerServer = New-Object System.Windows.Forms.Button
$ADC_NonDomainControllerServer.Location = New-Object System.Drawing.Point(224, 16)
$ADC_NonDomainControllerServer.Size = New-Object System.Drawing.Size(160, 32)
$ADC_NonDomainControllerServer.TabIndex = 4
$ADC_NonDomainControllerServer.Text = "Non Domain Controller Server"
$ADC_NonDomainControllerServer.UseVisualStyleBackColor = $true
$ADC_NonDomainControllerServer.add_Click({ADC_NonDomainControllerServer_Click($ADC_NonDomainControllerServer)})
#~~< ADC_DomainController >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ADC_DomainController = New-Object System.Windows.Forms.Button
$ADC_DomainController.Location = New-Object System.Drawing.Point(104, 16)
$ADC_DomainController.Size = New-Object System.Drawing.Size(104, 32)
$ADC_DomainController.TabIndex = 3
$ADC_DomainController.Text = "Domain Controller"
$ADC_DomainController.UseVisualStyleBackColor = $true
$ADC_DomainController.add_Click({ADC_DomainController_Click($ADC_DomainController)})
#~~< ADC_Workstation >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ADC_Workstation = New-Object System.Windows.Forms.Button
$ADC_Workstation.Location = New-Object System.Drawing.Point(8, 16)
$ADC_Workstation.Size = New-Object System.Drawing.Size(80, 32)
$ADC_Workstation.TabIndex = 2
$ADC_Workstation.Text = "Workstation"
$ADC_Workstation.UseVisualStyleBackColor = $true
$ADC_Workstation.add_Click({ADC_Workstation_Click($ADC_Workstation)})
$AutomaticDataCollection.Controls.Add($ADC_NonDomainControllerServer)
$AutomaticDataCollection.Controls.Add($ADC_DomainController)
$AutomaticDataCollection.Controls.Add($ADC_Workstation)
#~~< ActiveDirectory >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ActiveDirectory = New-Object System.Windows.Forms.TabPage
$ActiveDirectory.Location = New-Object System.Drawing.Point(4, 22)
$ActiveDirectory.Padding = New-Object System.Windows.Forms.Padding(3)
$ActiveDirectory.Size = New-Object System.Drawing.Size(1153, 155)
$ActiveDirectory.TabIndex = 2
$ActiveDirectory.Text = "Active Directory"
$ActiveDirectory.UseVisualStyleBackColor = $true
#~~< AD_ListComputersLastLogonDate >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$AD_ListComputersLastLogonDate = New-Object System.Windows.Forms.Button
$AD_ListComputersLastLogonDate.Location = New-Object System.Drawing.Point(200, 16)
$AD_ListComputersLastLogonDate.Size = New-Object System.Drawing.Size(184, 32)
$AD_ListComputersLastLogonDate.TabIndex = 4
$AD_ListComputersLastLogonDate.Text = "List Computers Last Logon Date"
$AD_ListComputersLastLogonDate.UseVisualStyleBackColor = $true
$AD_ListComputersLastLogonDate.add_Click({AD_ListComputersLastLogonDate_Click($AD_ListComputersLastLogonDate)})
#~~< AD_ListComputers >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$AD_ListComputers = New-Object System.Windows.Forms.Button
$AD_ListComputers.Location = New-Object System.Drawing.Point(96, 16)
$AD_ListComputers.Size = New-Object System.Drawing.Size(88, 32)
$AD_ListComputers.TabIndex = 3
$AD_ListComputers.Text = "List Computers"
$AD_ListComputers.UseVisualStyleBackColor = $true
$AD_ListComputers.add_Click({AD_ListComputers_Click($AD_ListComputers)})
#~~< AD_ListUsers >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$AD_ListUsers = New-Object System.Windows.Forms.Button
$AD_ListUsers.Location = New-Object System.Drawing.Point(8, 16)
$AD_ListUsers.Size = New-Object System.Drawing.Size(72, 32)
$AD_ListUsers.TabIndex = 2
$AD_ListUsers.Text = "List Users"
$AD_ListUsers.UseVisualStyleBackColor = $true
$AD_ListUsers.add_Click({AD_ListUsers_Click($AD_ListUsers)})
$ActiveDirectory.Controls.Add($AD_ListComputersLastLogonDate)
$ActiveDirectory.Controls.Add($AD_ListComputers)
$ActiveDirectory.Controls.Add($AD_ListUsers)
$ActiveDirectory.add_MouseClick({AD_Tab_Click($ActiveDirectory)})
#~~< DomainOperations >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DomainOperations = New-Object System.Windows.Forms.TabPage
$DomainOperations.Location = New-Object System.Drawing.Point(4, 22)
$DomainOperations.Padding = New-Object System.Windows.Forms.Padding(3)
$DomainOperations.Size = New-Object System.Drawing.Size(1153, 155)
$DomainOperations.TabIndex = 3
$DomainOperations.Text = "Domain Operations"
$DomainOperations.UseVisualStyleBackColor = $true
#~~< DO_ResetDefaultDomainGPOs >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DO_ResetDefaultDomainGPOs = New-Object System.Windows.Forms.Button
$DO_ResetDefaultDomainGPOs.Location = New-Object System.Drawing.Point(527, 16)
$DO_ResetDefaultDomainGPOs.Size = New-Object System.Drawing.Size(168, 32)
$DO_ResetDefaultDomainGPOs.TabIndex = 9
$DO_ResetDefaultDomainGPOs.Text = "Reset Default Domain GPO"+[char]39+"s"
$DO_ResetDefaultDomainGPOs.UseVisualStyleBackColor = $true
$DO_ResetDefaultDomainGPOs.add_Click({DO_ResetDomainGPOs_Click($DO_ResetDefaultDomainGPOs)})
#~~< DO_ListAllGPOProperties >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DO_ListAllGPOProperties = New-Object System.Windows.Forms.Button
$DO_ListAllGPOProperties.Location = New-Object System.Drawing.Point(368, 16)
$DO_ListAllGPOProperties.Size = New-Object System.Drawing.Size(144, 32)
$DO_ListAllGPOProperties.TabIndex = 8
$DO_ListAllGPOProperties.Text = "List All GPO Properties"
$DO_ListAllGPOProperties.UseVisualStyleBackColor = $true
$DO_ListAllGPOProperties.add_Click({DO_ListAllGPOProperties_Click($DO_ListAllGPOProperties)})
#~~< DO_ExportAllGPOSettings >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DO_ExportAllGPOSettings = New-Object System.Windows.Forms.Button
$DO_ExportAllGPOSettings.Location = New-Object System.Drawing.Point(208, 16)
$DO_ExportAllGPOSettings.Size = New-Object System.Drawing.Size(144, 32)
$DO_ExportAllGPOSettings.TabIndex = 7
$DO_ExportAllGPOSettings.Text = "Export All GPO Settings"
$DO_ExportAllGPOSettings.UseVisualStyleBackColor = $true
$DO_ExportAllGPOSettings.add_Click({DO_ExportAllGPOSettings_Click($DO_ExportAllGPOSettings)})
#~~< DO_ListActiveCertificateAuthority >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DO_ListActiveCertificateAuthority = New-Object System.Windows.Forms.Button
$DO_ListActiveCertificateAuthority.Location = New-Object System.Drawing.Point(8, 16)
$DO_ListActiveCertificateAuthority.Size = New-Object System.Drawing.Size(184, 32)
$DO_ListActiveCertificateAuthority.TabIndex = 6
$DO_ListActiveCertificateAuthority.Text = "List Active Certificate Authority"
$DO_ListActiveCertificateAuthority.UseVisualStyleBackColor = $true
$DO_ListActiveCertificateAuthority.add_Click({DO_ListActiveCertificateAuthority_Click($DO_ListActiveCertificateAuthority)})
$DomainOperations.Controls.Add($DO_ResetDefaultDomainGPOs)
$DomainOperations.Controls.Add($DO_ListAllGPOProperties)
$DomainOperations.Controls.Add($DO_ExportAllGPOSettings)
$DomainOperations.Controls.Add($DO_ListActiveCertificateAuthority)
#~~< O365Exchange >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$O365Exchange = New-Object System.Windows.Forms.TabPage
$O365Exchange.Location = New-Object System.Drawing.Point(4, 22)
$O365Exchange.Padding = New-Object System.Windows.Forms.Padding(3)
$O365Exchange.Size = New-Object System.Drawing.Size(1153, 155)
$O365Exchange.TabIndex = 4
$O365Exchange.Text = "O365 Exchange"
$O365Exchange.BackColor = [System.Drawing.Color]::Transparent
#~~< OE_DisableClutterAllUsers >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$OE_DisableClutterAllUsers = New-Object System.Windows.Forms.Button
$OE_DisableClutterAllUsers.Location = New-Object System.Drawing.Point(416, 16)
$OE_DisableClutterAllUsers.Size = New-Object System.Drawing.Size(144, 32)
$OE_DisableClutterAllUsers.TabIndex = 6
$OE_DisableClutterAllUsers.Text = "Disable Clutter All Users"
$OE_DisableClutterAllUsers.UseVisualStyleBackColor = $true
$OE_DisableClutterAllUsers.add_Click({OE_DisableClutterAllUsers_Click($OE_DisableClutterAllUsers)})
#~~< OE_O365Report >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$OE_O365Report = New-Object System.Windows.Forms.Button
$OE_O365Report.Location = New-Object System.Drawing.Point(304, 16)
$OE_O365Report.Size = New-Object System.Drawing.Size(96, 32)
$OE_O365Report.TabIndex = 5
$OE_O365Report.Text = "O365 Report"
$OE_O365Report.UseVisualStyleBackColor = $true
$OE_O365Report.add_Click({OE_O365Report_Click($OE_O365Report)})
#~~< OE_ListAssignedLicenses >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$OE_ListAssignedLicenses = New-Object System.Windows.Forms.Button
$OE_ListAssignedLicenses.Location = New-Object System.Drawing.Point(144, 16)
$OE_ListAssignedLicenses.Size = New-Object System.Drawing.Size(144, 32)
$OE_ListAssignedLicenses.TabIndex = 4
$OE_ListAssignedLicenses.Text = "List Assigned Licenses"
$OE_ListAssignedLicenses.UseVisualStyleBackColor = $true
$OE_ListAssignedLicenses.add_Click({OE_ListAssignedLicenses_Click($OE_ListAssignedLicenses)})
#~~< OE_ConnecttoO365 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$OE_ConnecttoO365 = New-Object System.Windows.Forms.Button
$OE_ConnecttoO365.Location = New-Object System.Drawing.Point(16, 16)
$OE_ConnecttoO365.Size = New-Object System.Drawing.Size(112, 32)
$OE_ConnecttoO365.TabIndex = 3
$OE_ConnecttoO365.Text = "Connect to O365"
$OE_ConnecttoO365.UseVisualStyleBackColor = $false
$OE_ConnecttoO365.BackColor = [System.Drawing.Color]::SpringGreen
$OE_ConnecttoO365.add_Click({OE_ConnecttoO365_Click($OE_ConnecttoO365)})
$O365Exchange.Controls.Add($OE_DisableClutterAllUsers)
$O365Exchange.Controls.Add($OE_O365Report)
$O365Exchange.Controls.Add($OE_ListAssignedLicenses)
$O365Exchange.Controls.Add($OE_ConnecttoO365)
$O365Exchange.add_Click({O365_Tab_Click($O365Exchange)})
#~~< LocalExchange >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LocalExchange = New-Object System.Windows.Forms.TabPage
$LocalExchange.Location = New-Object System.Drawing.Point(4, 22)
$LocalExchange.Padding = New-Object System.Windows.Forms.Padding(3)
$LocalExchange.Size = New-Object System.Drawing.Size(1153, 155)
$LocalExchange.TabIndex = 5
$LocalExchange.Text = "Local Exchange"
$LocalExchange.UseVisualStyleBackColor = $true
#~~< Exchange2016GroupBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Exchange2016GroupBox = New-Object System.Windows.Forms.GroupBox
$Exchange2016GroupBox.Location = New-Object System.Drawing.Point(832, 8)
$Exchange2016GroupBox.Size = New-Object System.Drawing.Size(168, 141)
$Exchange2016GroupBox.TabIndex = 9
$Exchange2016GroupBox.TabStop = $false
$Exchange2016GroupBox.Text = "Exchange 2016"
#~~< LE_ListAllSMTP2016 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ListAllSMTP2016 = New-Object System.Windows.Forms.Button
$LE_ListAllSMTP2016.Location = New-Object System.Drawing.Point(8, 56)
$LE_ListAllSMTP2016.Size = New-Object System.Drawing.Size(80, 24)
$LE_ListAllSMTP2016.TabIndex = 5
$LE_ListAllSMTP2016.Text = "List All SMTP"
$LE_ListAllSMTP2016.UseVisualStyleBackColor = $true
$LE_ListAllSMTP2016.add_Click({LE_ListAllSMTP2016_Click($LE_ListAllSMTP2016)})
#~~< LE_ConnectExchange2016 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ConnectExchange2016 = New-Object System.Windows.Forms.Button
$LE_ConnectExchange2016.Location = New-Object System.Drawing.Point(8, 16)
$LE_ConnectExchange2016.Size = New-Object System.Drawing.Size(136, 32)
$LE_ConnectExchange2016.TabIndex = 4
$LE_ConnectExchange2016.Text = "Connect Exchange 2016"
$LE_ConnectExchange2016.UseVisualStyleBackColor = $false
$LE_ConnectExchange2016.BackColor = [System.Drawing.Color]::SpringGreen
$LE_ConnectExchange2016.add_Click({LE_ConnectExchange2016_Click($LE_ConnectExchange2016)})
$Exchange2016GroupBox.Controls.Add($LE_ListAllSMTP2016)
$Exchange2016GroupBox.Controls.Add($LE_ConnectExchange2016)
#~~< Exchange2013GroupBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Exchange2013GroupBox = New-Object System.Windows.Forms.GroupBox
$Exchange2013GroupBox.Location = New-Object System.Drawing.Point(560, 8)
$Exchange2013GroupBox.Size = New-Object System.Drawing.Size(168, 141)
$Exchange2013GroupBox.TabIndex = 8
$Exchange2013GroupBox.TabStop = $false
$Exchange2013GroupBox.Text = "Exchange 2013"
#~~< LE_ListAllSMTP2013 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ListAllSMTP2013 = New-Object System.Windows.Forms.Button
$LE_ListAllSMTP2013.Location = New-Object System.Drawing.Point(8, 56)
$LE_ListAllSMTP2013.Size = New-Object System.Drawing.Size(80, 24)
$LE_ListAllSMTP2013.TabIndex = 5
$LE_ListAllSMTP2013.Text = "List All SMTP"
$LE_ListAllSMTP2013.UseVisualStyleBackColor = $true
$LE_ListAllSMTP2013.add_Click({LE_ListAllSMTP2013_Click($LE_ListAllSMTP2013)})
#~~< LE_ConnectExchange2013 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ConnectExchange2013 = New-Object System.Windows.Forms.Button
$LE_ConnectExchange2013.Location = New-Object System.Drawing.Point(8, 16)
$LE_ConnectExchange2013.Size = New-Object System.Drawing.Size(136, 32)
$LE_ConnectExchange2013.TabIndex = 4
$LE_ConnectExchange2013.Text = "Connect Exchange 2013"
$LE_ConnectExchange2013.UseVisualStyleBackColor = $false
$LE_ConnectExchange2013.BackColor = [System.Drawing.Color]::SpringGreen
$LE_ConnectExchange2013.add_Click({LE_ConnectExchange2013_Click($LE_ConnectExchange2013)})
$Exchange2013GroupBox.Controls.Add($LE_ListAllSMTP2013)
$Exchange2013GroupBox.Controls.Add($LE_ConnectExchange2013)
#~~< Exchange2010GroupBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Exchange2010GroupBox = New-Object System.Windows.Forms.GroupBox
$Exchange2010GroupBox.Location = New-Object System.Drawing.Point(288, 8)
$Exchange2010GroupBox.Size = New-Object System.Drawing.Size(168, 141)
$Exchange2010GroupBox.TabIndex = 7
$Exchange2010GroupBox.TabStop = $false
$Exchange2010GroupBox.Text = "Exchange 2010"
#~~< LE_ListAllSMTP2010 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ListAllSMTP2010 = New-Object System.Windows.Forms.Button
$LE_ListAllSMTP2010.Location = New-Object System.Drawing.Point(8, 56)
$LE_ListAllSMTP2010.Size = New-Object System.Drawing.Size(80, 24)
$LE_ListAllSMTP2010.TabIndex = 5
$LE_ListAllSMTP2010.Text = "List All SMTP"
$LE_ListAllSMTP2010.UseVisualStyleBackColor = $true
$LE_ListAllSMTP2010.add_Click({LE_ListAllSMTP2010_Click($LE_ListAllSMTP2010)})
#~~< LE_ConnectExchange2010 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ConnectExchange2010 = New-Object System.Windows.Forms.Button
$LE_ConnectExchange2010.Location = New-Object System.Drawing.Point(8, 16)
$LE_ConnectExchange2010.Size = New-Object System.Drawing.Size(136, 32)
$LE_ConnectExchange2010.TabIndex = 4
$LE_ConnectExchange2010.Text = "Connect Exchange 2010"
$LE_ConnectExchange2010.UseVisualStyleBackColor = $false
$LE_ConnectExchange2010.BackColor = [System.Drawing.Color]::SpringGreen
$LE_ConnectExchange2010.add_Click({LE_ConnectExchange2010_Click($LE_ConnectExchange2010)})
$Exchange2010GroupBox.Controls.Add($LE_ListAllSMTP2010)
$Exchange2010GroupBox.Controls.Add($LE_ConnectExchange2010)
#~~< Exchange2007GroupBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Exchange2007GroupBox = New-Object System.Windows.Forms.GroupBox
$Exchange2007GroupBox.Location = New-Object System.Drawing.Point(8, 8)
$Exchange2007GroupBox.Size = New-Object System.Drawing.Size(168, 141)
$Exchange2007GroupBox.TabIndex = 6
$Exchange2007GroupBox.TabStop = $false
$Exchange2007GroupBox.Text = "Exchange 2007"
#~~< LE_ListAllSMTP2007 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ListAllSMTP2007 = New-Object System.Windows.Forms.Button
$LE_ListAllSMTP2007.Location = New-Object System.Drawing.Point(8, 56)
$LE_ListAllSMTP2007.Size = New-Object System.Drawing.Size(80, 24)
$LE_ListAllSMTP2007.TabIndex = 5
$LE_ListAllSMTP2007.Text = "List All SMTP"
$LE_ListAllSMTP2007.UseVisualStyleBackColor = $true
$LE_ListAllSMTP2007.add_Click({LE_ListAllSMTP2007_Click($LE_ListAllSMTP2007)})
#~~< LE_ConnectExchange2007 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$LE_ConnectExchange2007 = New-Object System.Windows.Forms.Button
$LE_ConnectExchange2007.Location = New-Object System.Drawing.Point(8, 16)
$LE_ConnectExchange2007.Size = New-Object System.Drawing.Size(136, 32)
$LE_ConnectExchange2007.TabIndex = 4
$LE_ConnectExchange2007.Text = "Connect Exchange 2007"
$LE_ConnectExchange2007.UseVisualStyleBackColor = $false
$LE_ConnectExchange2007.BackColor = [System.Drawing.Color]::SpringGreen
$LE_ConnectExchange2007.add_Click({LE_ConnectExchange2007_Click($LE_ConnectExchange2007)})
$Exchange2007GroupBox.Controls.Add($LE_ListAllSMTP2007)
$Exchange2007GroupBox.Controls.Add($LE_ConnectExchange2007)
$LocalExchange.Controls.Add($Exchange2016GroupBox)
$LocalExchange.Controls.Add($Exchange2013GroupBox)
$LocalExchange.Controls.Add($Exchange2010GroupBox)
$LocalExchange.Controls.Add($Exchange2007GroupBox)
#~~< NetworkOperations >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$NetworkOperations = New-Object System.Windows.Forms.TabPage
$NetworkOperations.Location = New-Object System.Drawing.Point(4, 22)
$NetworkOperations.Padding = New-Object System.Windows.Forms.Padding(3)
$NetworkOperations.Size = New-Object System.Drawing.Size(1153, 155)
$NetworkOperations.TabIndex = 6
$NetworkOperations.Text = "Network Operations"
$NetworkOperations.UseVisualStyleBackColor = $true
#~~< TroubleshootingPacks >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TroubleshootingPacks = New-Object System.Windows.Forms.TabPage
$TroubleshootingPacks.Location = New-Object System.Drawing.Point(4, 22)
$TroubleshootingPacks.Padding = New-Object System.Windows.Forms.Padding(3)
$TroubleshootingPacks.Size = New-Object System.Drawing.Size(1153, 155)
$TroubleshootingPacks.TabIndex = 7
$TroubleshootingPacks.Text = "Troubleshooting Packs"
$TroubleshootingPacks.UseVisualStyleBackColor = $true
#~~< TP_Windows_Update_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Windows_Update_Test = New-Object System.Windows.Forms.Button
$TP_Windows_Update_Test.Location = New-Object System.Drawing.Point(906, 63)
$TP_Windows_Update_Test.Size = New-Object System.Drawing.Size(120, 32)
$TP_Windows_Update_Test.TabIndex = 20
$TP_Windows_Update_Test.Text = "Windows Update Test"
$TP_Windows_Update_Test.UseVisualStyleBackColor = $true
$TP_Windows_Update_Test.add_Click({TP_Windows_Update_Test_Click($TP_Windows_Update_Test)})
#~~< TP_Video_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Video_Test = New-Object System.Windows.Forms.Button
$TP_Video_Test.Location = New-Object System.Drawing.Point(804, 63)
$TP_Video_Test.Size = New-Object System.Drawing.Size(96, 32)
$TP_Video_Test.TabIndex = 19
$TP_Video_Test.Text = "Video Test"
$TP_Video_Test.UseVisualStyleBackColor = $true
$TP_Video_Test.add_Click({TP_Video_Test_Click($TP_Video_Test)})
#~~< TP_Usb_Core_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Usb_Core_Test = New-Object System.Windows.Forms.Button
$TP_Usb_Core_Test.Location = New-Object System.Drawing.Point(698, 63)
$TP_Usb_Core_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Usb_Core_Test.TabIndex = 18
$TP_Usb_Core_Test.Text = "Usb Core Test"
$TP_Usb_Core_Test.UseVisualStyleBackColor = $true
$TP_Usb_Core_Test.add_Click({TP_Usb_Core_Test_Click($TP_Usb_Core_Test)})
#~~< TP_Search_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Search_Test = New-Object System.Windows.Forms.Button
$TP_Search_Test.Location = New-Object System.Drawing.Point(592, 63)
$TP_Search_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Search_Test.TabIndex = 17
$TP_Search_Test.Text = "Search Test"
$TP_Search_Test.UseVisualStyleBackColor = $true
$TP_Search_Test.add_Click({TP_Search_Test_Click($TP_Search_Test)})
#~~< TP_Printer_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Printer_Test = New-Object System.Windows.Forms.Button
$TP_Printer_Test.Location = New-Object System.Drawing.Point(486, 63)
$TP_Printer_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Printer_Test.TabIndex = 16
$TP_Printer_Test.Text = "Printer Test"
$TP_Printer_Test.UseVisualStyleBackColor = $true
$TP_Printer_Test.add_Click({TP_Printer_Test_Click($TP_Printer_Test)})
#~~< TP_Power_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Power_Test = New-Object System.Windows.Forms.Button
$TP_Power_Test.Location = New-Object System.Drawing.Point(380, 63)
$TP_Power_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Power_Test.TabIndex = 15
$TP_Power_Test.Text = "Power Test"
$TP_Power_Test.UseVisualStyleBackColor = $true
$TP_Power_Test.add_Click({TP_Power_Test_Click($TP_Power_Test)})
#~~< TP_Performance_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Performance_Test = New-Object System.Windows.Forms.Button
$TP_Performance_Test.Location = New-Object System.Drawing.Point(274, 63)
$TP_Performance_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Performance_Test.TabIndex = 14
$TP_Performance_Test.Text = "Performance Test"
$TP_Performance_Test.UseVisualStyleBackColor = $true
$TP_Performance_Test.add_Click({TP_Performance_Test_Click($TP_Performance_Test)})
#~~< TP_Performance_Counters_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Performance_Counters_Test = New-Object System.Windows.Forms.Button
$TP_Performance_Counters_Test.Location = New-Object System.Drawing.Point(123, 63)
$TP_Performance_Counters_Test.Size = New-Object System.Drawing.Size(145, 32)
$TP_Performance_Counters_Test.TabIndex = 13
$TP_Performance_Counters_Test.Text = "Performance Counters Test"
$TP_Performance_Counters_Test.UseVisualStyleBackColor = $true
$TP_Performance_Counters_Test.add_Click({TP_Performance_Counters_Test_Click($TP_Performance_Counters_Test)})
#~~< TP_Networking_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Networking_Test = New-Object System.Windows.Forms.Button
$TP_Networking_Test.Location = New-Object System.Drawing.Point(8, 63)
$TP_Networking_Test.Size = New-Object System.Drawing.Size(109, 32)
$TP_Networking_Test.TabIndex = 12
$TP_Networking_Test.Text = "Networking Test"
$TP_Networking_Test.UseVisualStyleBackColor = $true
$TP_Networking_Test.add_Click({TP_Networking_Test_Click($TP_Networking_Test)})
#~~< TP_Keyboard_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Keyboard_Test = New-Object System.Windows.Forms.Button
$TP_Keyboard_Test.Location = New-Object System.Drawing.Point(984, 16)
$TP_Keyboard_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Keyboard_Test.TabIndex = 11
$TP_Keyboard_Test.Text = "Keyboard Test"
$TP_Keyboard_Test.UseVisualStyleBackColor = $true
$TP_Keyboard_Test.add_Click({TP_Keyboard_Test_Click($TP_Keyboard_Test)})
#~~< TP_IE_Security_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_IE_Security_Test = New-Object System.Windows.Forms.Button
$TP_IE_Security_Test.Location = New-Object System.Drawing.Point(869, 16)
$TP_IE_Security_Test.Size = New-Object System.Drawing.Size(109, 32)
$TP_IE_Security_Test.TabIndex = 10
$TP_IE_Security_Test.Text = "IE Security Test"
$TP_IE_Security_Test.UseVisualStyleBackColor = $true
$TP_IE_Security_Test.add_Click({TP_IE_Security_Test_Click($TP_IE_Security_Test)})
#~~< TP_IE_Browse_Web_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_IE_Browse_Web_Test = New-Object System.Windows.Forms.Button
$TP_IE_Browse_Web_Test.Location = New-Object System.Drawing.Point(743, 16)
$TP_IE_Browse_Web_Test.Size = New-Object System.Drawing.Size(120, 32)
$TP_IE_Browse_Web_Test.TabIndex = 9
$TP_IE_Browse_Web_Test.Text = "IE Browse Web Test"
$TP_IE_Browse_Web_Test.UseVisualStyleBackColor = $true
$TP_IE_Browse_Web_Test.add_Click({TP_IE_Browse_Web_Test_Click($TP_IE_Browse_Web_Test)})
#~~< TP_Device_Center_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Device_Center_Test = New-Object System.Windows.Forms.Button
$TP_Device_Center_Test.Location = New-Object System.Drawing.Point(628, 16)
$TP_Device_Center_Test.Size = New-Object System.Drawing.Size(109, 32)
$TP_Device_Center_Test.TabIndex = 8
$TP_Device_Center_Test.Text = "Device Center Test"
$TP_Device_Center_Test.UseVisualStyleBackColor = $true
$TP_Device_Center_Test.add_Click({TP_Device_Center_Test($TP_Device_Center_Test)})
#~~< TP_Device_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Device_Test = New-Object System.Windows.Forms.Button
$TP_Device_Test.Location = New-Object System.Drawing.Point(522, 16)
$TP_Device_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Device_Test.TabIndex = 7
$TP_Device_Test.Text = "Device Test"
$TP_Device_Test.UseVisualStyleBackColor = $true
$TP_Device_Test.add_Click({TP_Device_Test_Click($TP_Device_Test)})
#~~< TP_Blue_Screen_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Blue_Screen_Test = New-Object System.Windows.Forms.Button
$TP_Blue_Screen_Test.Location = New-Object System.Drawing.Point(416, 16)
$TP_Blue_Screen_Test.Size = New-Object System.Drawing.Size(100, 32)
$TP_Blue_Screen_Test.TabIndex = 6
$TP_Blue_Screen_Test.Text = "Blue Screen Test"
$TP_Blue_Screen_Test.UseVisualStyleBackColor = $true
$TP_Blue_Screen_Test.add_Click({TP_Blue_Screen_Test($TP_Blue_Screen_Test)})
#~~< TP_Bits_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Bits_Test = New-Object System.Windows.Forms.Button
$TP_Bits_Test.Location = New-Object System.Drawing.Point(314, 16)
$TP_Bits_Test.Size = New-Object System.Drawing.Size(96, 32)
$TP_Bits_Test.TabIndex = 5
$TP_Bits_Test.Text = "Bits Test"
$TP_Bits_Test.UseVisualStyleBackColor = $true
$TP_Bits_Test.add_Click({TP_Bits_Test_Click($TP_Bits_Test)})
#~~< TP_Audio_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Audio_Test = New-Object System.Windows.Forms.Button
$TP_Audio_Test.Location = New-Object System.Drawing.Point(212, 16)
$TP_Audio_Test.Size = New-Object System.Drawing.Size(96, 32)
$TP_Audio_Test.TabIndex = 4
$TP_Audio_Test.Text = "Audio Test"
$TP_Audio_Test.UseVisualStyleBackColor = $true
$TP_Audio_Test.add_Click({TP_Audio_Test_Click($TP_Audio_Test)})
#~~< TP_Apps_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Apps_Test = New-Object System.Windows.Forms.Button
$TP_Apps_Test.Location = New-Object System.Drawing.Point(110, 16)
$TP_Apps_Test.Size = New-Object System.Drawing.Size(96, 32)
$TP_Apps_Test.TabIndex = 3
$TP_Apps_Test.Text = "Apps Test"
$TP_Apps_Test.UseVisualStyleBackColor = $true
$TP_Apps_Test.add_Click({TP_Apps_Test_Click($TP_Apps_Test)})
#~~< TP_Aero_Test >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TP_Aero_Test = New-Object System.Windows.Forms.Button
$TP_Aero_Test.Location = New-Object System.Drawing.Point(8, 16)
$TP_Aero_Test.Size = New-Object System.Drawing.Size(96, 32)
$TP_Aero_Test.TabIndex = 2
$TP_Aero_Test.Text = "Aero Test"
$TP_Aero_Test.UseVisualStyleBackColor = $true
$TP_Aero_Test.add_Click({TP_Aero_Test_Click($TP_Aero_Test)})
$TroubleshootingPacks.Controls.Add($TP_Windows_Update_Test)
$TroubleshootingPacks.Controls.Add($TP_Video_Test)
$TroubleshootingPacks.Controls.Add($TP_Usb_Core_Test)
$TroubleshootingPacks.Controls.Add($TP_Search_Test)
$TroubleshootingPacks.Controls.Add($TP_Printer_Test)
$TroubleshootingPacks.Controls.Add($TP_Power_Test)
$TroubleshootingPacks.Controls.Add($TP_Performance_Test)
$TroubleshootingPacks.Controls.Add($TP_Performance_Counters_Test)
$TroubleshootingPacks.Controls.Add($TP_Networking_Test)
$TroubleshootingPacks.Controls.Add($TP_Keyboard_Test)
$TroubleshootingPacks.Controls.Add($TP_IE_Security_Test)
$TroubleshootingPacks.Controls.Add($TP_IE_Browse_Web_Test)
$TroubleshootingPacks.Controls.Add($TP_Device_Center_Test)
$TroubleshootingPacks.Controls.Add($TP_Device_Test)
$TroubleshootingPacks.Controls.Add($TP_Blue_Screen_Test)
$TroubleshootingPacks.Controls.Add($TP_Bits_Test)
$TroubleshootingPacks.Controls.Add($TP_Audio_Test)
$TroubleshootingPacks.Controls.Add($TP_Apps_Test)
$TroubleshootingPacks.Controls.Add($TP_Aero_Test)
$TroubleshootingPacks.add_Click({TroubleshootingPacksClick($TroubleshootingPacks)})
#~~< PowershellGallery >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PowershellGallery = New-Object System.Windows.Forms.TabPage
$PowershellGallery.Location = New-Object System.Drawing.Point(4, 22)
$PowershellGallery.Padding = New-Object System.Windows.Forms.Padding(3)
$PowershellGallery.Size = New-Object System.Drawing.Size(1153, 155)
$PowershellGallery.TabIndex = 8
$PowershellGallery.Text = "Powershell Gallery"
$PowershellGallery.UseVisualStyleBackColor = $true
#~~< ModulesGroupBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ModulesGroupBox = New-Object System.Windows.Forms.GroupBox
$ModulesGroupBox.Location = New-Object System.Drawing.Point(688, 8)
$ModulesGroupBox.Size = New-Object System.Drawing.Size(324, 141)
$ModulesGroupBox.TabIndex = 14
$ModulesGroupBox.TabStop = $false
$ModulesGroupBox.Text = "Modules"
#~~< PG_Find_Module >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PG_Find_Module = New-Object System.Windows.Forms.Button
$PG_Find_Module.Location = New-Object System.Drawing.Point(6, 19)
$PG_Find_Module.Size = New-Object System.Drawing.Size(88, 32)
$PG_Find_Module.TabIndex = 11
$PG_Find_Module.Text = "Find Module"
$PG_Find_Module.UseVisualStyleBackColor = $true
$PG_Find_Module.add_Click({PG_Find_Module_Click($PG_Find_Module)})
#~~< PG_Install_Module >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PG_Install_Module = New-Object System.Windows.Forms.Button
$PG_Install_Module.Location = New-Object System.Drawing.Point(6, 68)
$PG_Install_Module.Size = New-Object System.Drawing.Size(88, 32)
$PG_Install_Module.TabIndex = 13
$PG_Install_Module.Text = "Install Module"
$PG_Install_Module.UseVisualStyleBackColor = $true
$PG_Install_Module.add_Click({PG_Install_Module_Click($PG_Install_Module)})
$ModulesGroupBox.Controls.Add($PG_Find_Module)
$ModulesGroupBox.Controls.Add($PG_Install_Module)
#~~< PG_Install_PowerShellGet >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PG_Install_PowerShellGet = New-Object System.Windows.Forms.Button
$PG_Install_PowerShellGet.Location = New-Object System.Drawing.Point(8, 16)
$PG_Install_PowerShellGet.Size = New-Object System.Drawing.Size(117, 32)
$PG_Install_PowerShellGet.TabIndex = 5
$PG_Install_PowerShellGet.Text = "Install PowerShellGet"
$PG_Install_PowerShellGet.UseVisualStyleBackColor = $false
$PG_Install_PowerShellGet.BackColor = [System.Drawing.Color]::SpringGreen
$PG_Install_PowerShellGet.add_Click({PG_Install_PowerShellGet_Click($PG_Install_PowerShellGet)})
#~~< ScriptsGroupBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ScriptsGroupBox = New-Object System.Windows.Forms.GroupBox
$ScriptsGroupBox.Location = New-Object System.Drawing.Point(178, 8)
$ScriptsGroupBox.Size = New-Object System.Drawing.Size(324, 141)
$ScriptsGroupBox.TabIndex = 15
$ScriptsGroupBox.TabStop = $false
$ScriptsGroupBox.Text = "Scripts"
#~~< PG_Find_Script >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PG_Find_Script = New-Object System.Windows.Forms.Button
$PG_Find_Script.Location = New-Object System.Drawing.Point(6, 19)
$PG_Find_Script.Size = New-Object System.Drawing.Size(90, 32)
$PG_Find_Script.TabIndex = 10
$PG_Find_Script.Text = "Find Script"
$PG_Find_Script.UseVisualStyleBackColor = $true
$PG_Find_Script.add_Click({PG_Find_Script_Click($PG_Find_Script)})
#~~< PG_Install_Script >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PG_Install_Script = New-Object System.Windows.Forms.Button
$PG_Install_Script.Location = New-Object System.Drawing.Point(6, 68)
$PG_Install_Script.Size = New-Object System.Drawing.Size(90, 32)
$PG_Install_Script.TabIndex = 12
$PG_Install_Script.Text = "Install Script"
$PG_Install_Script.UseVisualStyleBackColor = $true
$PG_Install_Script.add_Click({PG_Install_Script_Click($PG_Install_Script)})
$ScriptsGroupBox.Controls.Add($PG_Find_Script)
$ScriptsGroupBox.Controls.Add($PG_Install_Script)
#~~< PG_Open_Powershell_Gallery_Website >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PG_Open_Powershell_Gallery_Website = New-Object System.Windows.Forms.Button
$PG_Open_Powershell_Gallery_Website.Location = New-Object System.Drawing.Point(8, 58)
$PG_Open_Powershell_Gallery_Website.Size = New-Object System.Drawing.Size(117, 50)
$PG_Open_Powershell_Gallery_Website.TabIndex = 9
$PG_Open_Powershell_Gallery_Website.Text = "Open Powershell Gallery Website"
$PG_Open_Powershell_Gallery_Website.UseVisualStyleBackColor = $true
$PG_Open_Powershell_Gallery_Website.add_Click({PG_Open_Powershell_Gallery_Website_Click($PG_Open_Powershell_Gallery_Website)})
$PowershellGallery.Controls.Add($ModulesGroupBox)
$PowershellGallery.Controls.Add($PG_Install_PowerShellGet)
$PowershellGallery.Controls.Add($ScriptsGroupBox)
$PowershellGallery.Controls.Add($PG_Open_Powershell_Gallery_Website)
#~~< 3rdPartyUtilities >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$3rdPartyUtilities = New-Object System.Windows.Forms.TabPage
$3rdPartyUtilities.Location = New-Object System.Drawing.Point(4, 22)
$3rdPartyUtilities.Padding = New-Object System.Windows.Forms.Padding(3)
$3rdPartyUtilities.Size = New-Object System.Drawing.Size(1153, 155)
$3rdPartyUtilities.TabIndex = 9
$3rdPartyUtilities.Text = "3rd Party Utilities"
$3rdPartyUtilities.UseVisualStyleBackColor = $true
$TabControl1.Controls.Add($ManualOperations)
$TabControl1.Controls.Add($AutomaticDataCollection)
$TabControl1.Controls.Add($ActiveDirectory)
$TabControl1.Controls.Add($DomainOperations)
$TabControl1.Controls.Add($O365Exchange)
$TabControl1.Controls.Add($LocalExchange)
$TabControl1.Controls.Add($NetworkOperations)
$TabControl1.Controls.Add($TroubleshootingPacks)
$TabControl1.Controls.Add($PowershellGallery)
$TabControl1.Controls.Add($3rdPartyUtilities)
$TabControl1.SelectedIndex = 0
#~~< Panel1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Panel1 = New-Object System.Windows.Forms.Panel
$Panel1.Location = New-Object System.Drawing.Point(0, 27)
$Panel1.Size = New-Object System.Drawing.Size(1157, 113)
$Panel1.TabIndex = 1
$Panel1.Text = ""
#~~< Label2 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Label2 = New-Object System.Windows.Forms.Label
$Label2.Location = New-Object System.Drawing.Point(872, 73)
$Label2.Size = New-Object System.Drawing.Size(158, 23)
$Label2.TabIndex = 13
$Label2.Text = "System Type x86/x64"
#~~< Label1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Label1 = New-Object System.Windows.Forms.Label
$Label1.Location = New-Object System.Drawing.Point(872, 50)
$Label1.Size = New-Object System.Drawing.Size(100, 23)
$Label1.TabIndex = 12
$Label1.Text = "OS"
#~~< ComputerMGMT >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ComputerMGMT = New-Object System.Windows.Forms.Button
$ComputerMGMT.Location = New-Object System.Drawing.Point(97, 10)
$ComputerMGMT.Size = New-Object System.Drawing.Size(79, 93)
$ComputerMGMT.TabIndex = 11
$ComputerMGMT.Text = "Computer MGMT"
$ComputerMGMT.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$ComputerMGMT.UseVisualStyleBackColor = $true
#region$ComputerMGMT.Image = ([System.Drawing.Image](...)
$ComputerMGMT.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAABeBJREFUWEftl3lQ1GUYx50a+6c/smZqnJqMScksURAMFFFAQDTQ5Sid"+
                                 "LKPyqHEKNBCzmhGVARdwOZTlvu9dWE65WTlkuZdzuUVEZNKKsZn+/vY8v93VrZYGTfmj6Zn5zu8Y"+
                                 "9v183ud9f+8My/6vxdb03E8+3UPjZ1vUg+a6V0tbDq5uyqCEfGTLFOgcGJlq6R2WLKmMs7uHcncN"+
                                 "ICr9FaKoapxPLFhaGVcS2FcPeDZoI6J7j9JfsDeyCmfj85BVUPR0ZVjAi8AHrgH7Kd46Cbc6gDuz"+
                                 "u+hn7AqrwA+xOcjIK3zyMizwgVIrwOF77sReEni/FnCtBpyqAPtKSsE97Agpw+mYTKTnyp6MDO8B"+
                                 "nvWHBOYO6AUMu+BCEo4kseMqYFsB2JRTcu7C5nwx/CPTkZZT8ECmVqW21w29uHJ2FwlLwGCON4Wf"+
                                 "WcCdBPZQF3YZdGE7SWwlAesywKoUWK8ATFPmsO6MDN9ciEJ5XRN0Qy+unN1ESp4xQ7kTfNV3gAWE"+
                                 "ZaAuOBt0YRt14T0SeLsIeFMGrJZrs94/DZnykkcTcNrtrvQgmF6Cw8/7CK7fB/pl2KkT2FAMrCGg"+
                                 "aSHwli5rKRsCHkPAgQREBBIkKHzVC+g7wALOBN+smzXD+MpZR3lHF/PHE3BTMkz4/nXhe0GA4Cxg"+
                                 "R7N+l9ZaD+N7Dq8/x4zCXdl0ahECavpk0jNzz3786ec+UqnUxGLzFuXWCCWcs6cEKHdD335H2nQb"+
                                 "aWBDkBk9M4zfc8w5JYAFxfKfBNTqYRN134Df7dk780HnLsDMbAPWmJryH2PFiy/h1ddexwur7WER"+
                                 "kAqHwnlhkzFIDzMEcTYxkENfAn8NnM2BRgSmpmZFY2MTao1mDAMDGqjaOuDz2RdYteoNvPzKSlha"+
                                 "WcH3xEn4njwFt33eMDO3xPLlz2HlAckDkAAzBOnCkvw5cmz4etqIwMDg6Pz4+C1M3riNiclb6Osb"+
                                 "Qltbl5Dm5lZ0dfeiR92PbrqmpmXA2tqGZPxxKDgTLvJ7D0B6GIM4W+gs4PCZYMvhA8qYQH39dbS0"+
                                 "dKK0rBLiMAl6egZxg2UmpjEyMokhzSgGB4fR3z8ElaoTI6NjiLkixbcBgZBERiO/ugUnrk7Dtex3"+
                                 "LYxAfA5w7HThw4k/z63fGRGoqKiFQlGBi+Jw+PufQlRULLp7hqDRTFJHZoTOjE/cJJkJDA2NUkfU"+
                                 "+Or417gkiUJzSytuTt+CurcPxaXlCE4ugkNIKbbnzsGegBwH2qgc3rDbzhgRqKlpQl1dM05yWw/5"+
                                 "IDhYjNraZiiVKrS2dqOtvReK4go0NalIZoa6MYrp6Rncv/8bBgY1KKuoQm6+HDl5MmTnFiA0XAJn"+
                                 "d09Yex2GXZAMjnlzwhnBsVtIgHPw4Cfw8vTCuaBgVFY2oKSkSniflZWP0NAwHD58jGY6jNk7dzEz"+
                                 "Mwt5UcmfwJnZeYhLSIaqvQsR8WkorKyf//582NQud+95G5KxPyeD3fHQhQWOHPkSOx2dkJGeJzw3"+
                                 "NFwXRBIT07B//0fw9PASOjU2NoWa2gaCa8HpmTkETkJsXAKSUtLQqOrC1cZ2XFdr0NKjgbKjH/Kq"+
                                 "a0or2x1+ltvs1ZmykikdWlt6gYUilSbh6NFjcHFypqVpRHt7D82+GAmJKcKM4xOTkZqeheTUdCQm"+
                                 "p6K2uR2t1ClV3yg6h28iIVuOYycCFTrc38sY1DBSaTJcXffAysJSeO7o6EV2Tp4wcy04g8Bpgkhs"+
                                 "XCIuXIyAmDayX+CP87YOLqnrNlqKdCjjRYOmVlU1zRtC/5psmoVcXi7c8+bMyMpBCp0JWnAKpPGJ"+
                                 "uBwbh6iYWERERDnohn60IgkRAVINwQuF1/ohOB7Rl2MhiYpB+KVIBAQEuNFwz1OeFQZ+1FIqlSuq"+
                                 "qxt9amquKYzBOdL4JFyRMliKyOjLiKAzQRx+CSFiscLX13ctDfOMdrR/WQ9lGtWGAnwS6sFh4RHq"+
                                 "UHGEX0hIiInuZ0+nKiuVJiTixzLhkdFT1G6JWCxZuv+Q/mO1bNkfCv5UeJjKNEoAAAAASUVORK5C"+
                                 "YII=")),0,$$.Length)))))
#endregion
$ComputerMGMT.add_Click({ComputerMGMT_Click($ComputerMGMT)})
#~~< MMC >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MMC = New-Object System.Windows.Forms.Button
$MMC.Location = New-Object System.Drawing.Point(182, 10)
$MMC.Size = New-Object System.Drawing.Size(79, 93)
$MMC.TabIndex = 10
$MMC.Text = "MMC"
$MMC.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$MMC.UseVisualStyleBackColor = $true
#region$MMC.Image = ([System.Drawing.Image](...)
$MMC.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAABr5JREFUWEfNl3lQlHUYx+kAYVkOk1POhQX2YBfYA1gOFc+OyZrU1KbG"+
                                 "HMfGtNIazbCayQYMs5qpP0qNvIi8EEKBZXc5dhdcrmXBCwHDI5PUThWPEcdvz+/dXcVmC8lsemY+"+
                                 "83vf9/fu+3x+z/u877zrtnbdZ++szivA/SRvzYer3dzcPIgHiTsj/4O1N7uP9+PA0RPE8XtiUe6n"+
                                 "LkcmQamCCCZxZxR8+Aley72/OARiCW8u6dDIW7MOvSf675ruvh/Qdew0DnWfvGscAvGED5d0aND9"+
                                 "wcatu+4rfyvwfl7BlZs3b8IVx78/y5XQ1dxI+H8LsMkbN25gV8meO2DH+r7/kRNg2/fCsAKDg4Mu"+
                                 "cQq4mhsJwwpcv36dw7l6537fKbuAc/+fMqzAtWvXXPLdqX5OwNXcSLhrgaE9wPb/M4GrV6+6xCng"+
                                 "am4kDCtw5coVDufq2fbAzz+hu86MvMWr8Ft3NwbOnuWOW1tbMWnSJLjz+RBJJFi8ZAmKiorQ09Nz"+
                                 "6zp/ZliBy5cv2xkYwM+dNpws3IBDC+fDOnUiWrM06HzqSfSsfBP1774NWVgYcufMwb4dO/BRfj5m"+
                                 "z5iBADqWkZ2N3t7e29cawl0JlO3YCcvy12F9dApaU1VoUSShTa2AjWhSJmPjt6XIzEhHQXQkjj82"+
                                 "FYfnPY8j+Xno3V6MLq0WS5+bi5dI7OKZMyMXGKCVn9Nr8bu1DReam3C+dA9OfbwOPa8uweGnp8M6"+
                                 "PhOfqRRYL07AznQ1bER7Rho6qTqHsjNwmipVkqnBU0oFDr7/HvTLXkPHhi9wpKoS/R0dyF+dN7yA"+
                                 "dfo0HJ47B31v56K/cCN+1etwobUFv5PQL9VanN+wHidXvYXO52ajfcpEtJBEC1WnLU2FTpKpV6Vg"+
                                 "0Zxnsc2gw6bZs3AoMx02omN8FhqpYvrxWVV7JaJ8R9rbwQQuXboEvTweFYKxqBZGolYshEUmRteE"+
                                 "LHQveBEnaFX9mwrxU1kpx5mtm9FXsAaHX1kM28xn0DY5B00kwarjrJKVkrdThSy0bUiUoCpWALNc"+
                                 "jiqBYKYjtT2cAo3T0tEwVYVajRRaSv51djp2U+ktiWLUi4RoSpbBRuU+MP0JdM17AT1U5u9yV+LY"+
                                 "yhU4ym7V/HnomTUDXdRDtpzxsE7IhFmTihpJEkpDgmFISIBFoUaDSn3dkdoe7HvtndX5Vy3ZKrRN"+
                                 "0KBlchqaUpJQuHULXl24ABVJCdDJYlEpjEBFTBh08dEwJibQOTK00eoO0C04Mi4TB554HAeffpKY"+
                                 "joMk6Uy+K2AMKqOjUS+TwZgkQ5U8ifXDA8TDjpH7Tgvan54Ca0YGNVgqJ9DWYeMEjFlK7J+s4qpj"+
                                 "nqJETZoY1bIYEgqHUSZBcbYGJTnj0ExN2p6q5qTaqVKMIh8flIcz6ThUJ8RBJxVib1wCE2A5vQgm"+
                                 "wX2pejQoZGglayutaGgFGqmz29VKajY1WjPVsOSo0TiZSklChsS4W+eVS2JvVchEt9CikNPqH0FJ"+
                                 "UAAq6ZhBJYEpS+UU8CX8CE/CHuZEEZqpq1vomWcCn69Yhk+os1uogZroncBopuPNyWxMRiudxwSc"+
                                 "ldJqEmGamAKDWgStOBoVsWEoCQ5AdVIc6jTJMKnVMCWlOQUCiRBiNMvNhYlKZEmWwyJPRJNcCqNU"+
                                 "zMG298v+BJOSSu6oQA2V2aKQojEzGQ0TldztKosMhYGal/VCnUxFfZDqFBAQQiKS5ebCKIxBIyVs"+
                                 "EIuIBOwnGkXxMIvj0UBjgygOZpI0O8d4IUzE+uVLuUoZoyJhjouFWUiweeIbby9Ux0lJQEECatQm"+
                                 "qp0CKYSKYJ/q9tALIptrBFE3TCTCLmLiiAETM8YICOpkJwJGFIz0WtZFhEIXFcFt1zkwxtAcwQR0"+
                                 "IjkMJFAjpZ6R3BLIIqQEa0R77AwP9yrm8ZR7/H1X7Q0MKK8MCe7UhoUO1EaEoy6SoLE2Igw14WNR"+
                                 "E2bHQNSODeUwEDVjQ2gMQS2dw0a7APWKRAm9WI16aTrKIkTnKF04wT0Bfxmb/fz8d/v4ZOzk8ZaX"+
                                 "+ft+tXf0aFtlYMCgPigI+qBA6IMDoaNRFxhwG3rmGXrqfDbaBRQwSNPoMVSiPDiidL23t8yRYmSx"+
                                 "mR6ZInd3BQmtKOV7by3j8637+PyLVf5+0Pr7c1T5+doZ7ceNTMAgScW+aPHpYr7/y1R77sXzr8Q2"+
                                 "+p9X7OmpKfbweGOHp2dhyahR1jKe12AFj4dKvje+5XuhNDQKJSGR27/08BA7fnZ/Yhe9yIp4vNAt"+
                                 "Dz302HZ39zW7Rz1cvttvTFOx7yOrNri58RynuQg3tz8AaBOp6q4LeS0AAAAASUVORK5CYII=")),0,$$.Length)))))
#endregion
$MMC.add_Click({MMC_Click($MMC)})
#~~< RestartComputer >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$RestartComputer = New-Object System.Windows.Forms.Button
$RestartComputer.Location = New-Object System.Drawing.Point(777, 10)
$RestartComputer.Size = New-Object System.Drawing.Size(79, 93)
$RestartComputer.TabIndex = 9
$RestartComputer.Text = "Restart"
$RestartComputer.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$RestartComputer.UseVisualStyleBackColor = $true
#region$RestartComputer.Image = ([System.Drawing.Image](...)
$RestartComputer.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAACl5JREFUWEe9l3lY1VUax3EJFyRJSFRc2Bcvq4DIriAg+w6iYKgo7kvZ"+
                                 "6kzmaJs1YzWpJQrYWGONUzNNk1YqavNUU6kF4lQul7v+7r2AgJg2T+B3vuf8LsHMM/PMXzPv8xwv"+
                                 "3nPg/bz7OQ5CAIy/c+fOtv7+fi1//p8KdXRx7eaP439Szi8u3G7+Kyxbq2FcPh/GpSkwLkmEoWIO"+
                                 "9GVR0JdHQ18aCX1xOHQlEdCXzLKvCOgKgqHL03DNhC43EG2ZPtBytWX6yqVNmw5tigeuJLmjNc4V"+
                                 "X1UkwHziXQFyQUIIy4Vy08oM2J5aj44XHkXHLx+EbedaWH++DJZHlsDyUCUsWyqgbCyCssG+1hfA"+
                                 "vDZPXWtyYKrNhKkmHcZlqTRgLoz3JdGIBOgXziZ0OLQ5gfg23RtfJE7Bu+EuaPtIQjQ48B+t5ZEq"+
                                 "tD+zCV2v7UbPm/vQ/fpLuH7gaXS8tBXtz29B+67NEs66vRbWbSthfbwG1p8R7rFqdUnIRVC2LITy"+
                                 "QBnMm4phXp8H0+osGGvoUXpTR09eprcuzPfCB7Mn4mh+jAyHCIGk76SynrdewY0/NqLn6H50E6bz"+
                                 "lR3oeFF4ZABig+qZX6yG9Qk7zLYV9NRyCWR99D5YHq4kSDkUCZEP06osmJanQr84FleLI/BVhh8+"+
                                 "jJ2E/YHjhGrYARZI13e/8TKV16H7yF50NTyHzj1PoGP3w2h/7n60P21Xvn0VLI+vgIVKLVuXwjrg"+
                                 "ASq2PEgvPFCuemAdla/JlqEVIZEAzJmvswJxIt4DdUHOQwBI2P7sZnTV75Lu7zr0vGo9odqf3QTb"+
                                 "k+tgo9XCAz1HD+CH1nPov/W9/ANC+m/dxN+/a0HP7+okgPCosSaN+TAPxupkGCrjoauYLQGas2fi"+
                                 "ZNJ01GnGy9+VAIYlSbDRss6923C97im76x9T3S7cTYtvvPcG7gxR+p+k//tedB9+EYbFcTAsYhVV"+
                                 "xLCKopgDkQxBOJpzg3FyrhcOhk6Q51WAxfGw0p0dv3qIifeY6vZdtHzHGsa3BrfOfSwPC+nrtNLS"+
                                 "AwRby5Jl1lenwHx/GaF34keb2X4KuNn0rsx+sUT5tnFJgLwQnEr1RX24mzynApBSVgLd3WHP+nbh"+
                                 "dibarXN/kQeF9Py+niXH2NZm08Uitiw5ek+4WPwN0TNE7gzIzZN/gL4oFPrCEOiKwnCtMBQtBGgS"+
                                 "ABH3yjN2gNmyzkWStT+zUZaccH3v+0fkISHdr+9lYhWxtHJhXMEYL2eMqxnjygTV1aJZiSZVHAZl"+
                                 "c7H9t4Cug09DX8BGVRSCq4T5OleDphQfNAz1gL50Fiyby2Rp2XYw5swHkXB3bqsxv/H2ITafEjad"+
                                 "giHWp8g9IaLZ6MvYGYuFtcFUOBNddU/Kvf6bPTDSQF2hhgAhaMmdSQDvfwFggigbCmUeiCYjSkxk"+
                                 "u5C+Ths7IJvLgPUrB60fEJFkehHromAYCoKgzwuAPtcXP1oMcr+rbidbdhCu0hPNOUFomueFhrAh"+
                                 "ACI+5rW5rOWqn7qbKDUhN96h9RtLCVAoAUwCQJTY0kEAw8IoGMrCYSjWwFAYCEO+Pwy5PujcvUXu"+
                                 "/9D8GfT5AQQIQkt2AJrmziCAq9xTAdgiRe1a7i9X+z5B+q63ywPtzz1MALp/PQHWEED0/BXpMLHG"+
                                 "B8S4KArG8nAYSzQwEsBY4AdjnjfMy+LlvgiDIc8X1wjWkuWH08nT0Bh6j9yTAG2cYib2bDFkJMQD"+
                                 "FXJTiLKZbdUOYP4JII3NawjAYgIsDIOpVANTcQBMBb4w5nvBlDvdfoJeIpCWEC0LvHE60QMNIS7y"+
                                 "exUg21+6VLRPZXMpIcrkphBlUxkBRGvl9BMAqzJhXpkGc80ggKkyCqZF4TCXa2AuCYC5yJcQnjDl"+
                                 "DQIY8zyhzfXCxQWeOJMwGY3Bd8vvJYCWVMaqRMY4G2YxajeVyOQT0rFriwogPMA8Ma8mwKp0QgxW"+
                                 "gXlJNMyV4VAqNFDKCFDsA6XQE+0bM+S+rITcaTR0GlrTpuJM/EQ0aobMAm36DNlIRGylEkKIO4KQ"+
                                 "nrfrCVDE7+iBddxbkwVldTqU2lS5L8RcHQ2lKgKWxcGwlAfAUuoDS7Eneg5sk/u3Pz0GU84UXlAm"+
                                 "ozV1Ms7GuqIxyEnuqQApU2UvELUtYiwuGV2HX5IHROs1s0SVDbx4rMv5twDKUjay+whQGQxrRSCs"+
                                 "5b6wlniiz6qWYffuDTBnu0OXMRGX5rnh4xgXHAocI/ckwLW5k1iKoWoYWGJihovLhZhyQm68/1uG"+
                                 "gNavZYjWZBIgDcqqwRAoy6JhJYC1SgAEwFrmg9767XLvDt0vgMyZbtClTUBrkgs+jhqHQ/6Ocl8F"+
                                 "SLoXbXlBsqWKBiPLjBBdr70gDwkRtyVVeQaVs2Jq50FZmQilJhYWCRAOa6WGAP7o2avWv5De/Vth"+
                                 "zXaFku4CXcrduJTgjLOzxuKQ30i5LwGuxk9AG+tTdERDVQLnOEOxkhC8Un3/6UfyoJAb7/0G5lpa"+
                                 "X5tC5clQViRAWT4HlqVRBAiDrUqD3td22k8z9iePwJbjCmumC5Q0Z+iTx+JS7FicDR+FRt8R8owK"+
                                 "EMtLYrqnDINIRnGHkxDCE7UZuPXJh/KwkL4OBT1Hfo327UupPI4rBh2PV6D38LPoazfaT1F501uw"+
                                 "FbhLANuCu6GkOkGfOAqXYhxxNnQkGr2HyXMqQIwztKlTZRh0pZxohJCeqJ7LhkMQrq4Dz8jLxn8T"+
                                 "EfPe+idgK5wMW54bbFn3wJo2Dsq80dDF34XWqBE4oxn+zwBXop1kIoo7vU6MTjFWOcEMlXGqN+SK"+
                                 "p/vTcX3/Dtz+8gytHbx89NlM+OGLE+jZw+v8EiZioQesee6wZk2AldZbUsfCnOwIXewIXIwcjtOa"+
                                 "YWjwGgLwTeQYXE5ww9X506BlLmjzNfIG08ac0Il7vVzR0Imr1UI+UBZy9JaHcQCFwFg2ky2Y7beY"+
                                 "mc7mY86fCnPOJJiz3Jh442Gm603Jo2CMH4lrs4ehOWIYTgU5oN5TqlYBLoSNwkXW5t+SJuGbtBn4"+
                                 "li+a7zi3L+cH4zIn5RWuy7zNXOGsF3f7q0Wc7YVivAZAy8GjzffmPJkBXbYHdFks6Qw36Oe7QJ8y"+
                                 "DrqkMWiLuwvXYobjm1kO+DLEAcf8HbB3uh1APEy+LIrEJ+FO+DxmAj6Pc8cXSR44n+qJ82k+OJ/u"+
                                 "h/O8y59L98WFdPF/b35ypXnykTEdzWytzalT0JLijotz3XAxeQJaEl3QEu+Mi3PGoDWGxkWOkJZ/"+
                                 "TuVNgQ5409sBhzPC1IeJeJrZPjuNowGO+FOIE/4cPh7vRbrieMxEHJ8zGcdjp+B4nAeOxfEzdjI+"+
                                 "kGsSlzvP3IsTMa44SfBT0eNxOsoZZ9hkTkWMxcmw0WgKdURT8AjGfDg+otvfp+VC+cvTHPDtsXfU"+
                                 "pxm9IB+npk9P40h2JPZ4O+Jl39HY5z8G+wKc1MVHxJ5AZ7zK18yrgU6o4+fBILGcsJ/n6vxH46Cf"+
                                 "IxrZ3Rr87kKdz0g0+IzAIR+R7VxeDjjImO+j24XlduXq43Tghfx/fp438Ecqd3D4B8s/MHJUdZ8L"+
                                 "AAAAAElFTkSuQmCC")),0,$$.Length)))))
#endregion
$RestartComputer.add_Click({Restart_Click($RestartComputer)})
#~~< CMDPrompt >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$CMDPrompt = New-Object System.Windows.Forms.Button
$CMDPrompt.Location = New-Object System.Drawing.Point(607, 10)
$CMDPrompt.Size = New-Object System.Drawing.Size(79, 93)
$CMDPrompt.TabIndex = 8
$CMDPrompt.Text = "CMD Prompt"
$CMDPrompt.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$CMDPrompt.UseVisualStyleBackColor = $true
#region$CMDPrompt.Image = ([System.Drawing.Image](...)
$CMDPrompt.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAAAgdJREFUWEftl01rGlEUhocoFQmioLgQBL8QQUUQRRQRRFRE1L/RfSk0"+
                                 "kI1J1I5JmJioIckPao0f0VW7Snf9C3bVt/f4xYxOggRHA/WFB2eu58555nIXc7l9dh7+/Pq4fPYV"+
                                 "2+SsWi+z1h8YB1ylxv/9+fwbox+/GM8b5eNRQ/aXJFhz80RCEG7Gg+EIC55G6MsyRH8wRG/BE7r9"+
                                 "KTRO8wZDVsPq6H8af+wN0On28f2xh2+d7oKZgJNxyLXaD+NSqQSiWCyiUCggn88jl8shm80inU4j"+
                                 "lUohmUwikUggHo8jFoshEokgFAohGAwiEAjA7/fD6/XC4/HA7XbDbrfDYrHAaDRCq9VSwwUzATdD"+
                                 "xwTudyvQbN3tWKB992dZYJ6XBCiKCVDmK0CZC1AUEWg0byfN5QReWwHKXMDn88HlcsHhcMBms8Fq"+
                                 "tcJkMsFgMECv10Oj0WxGIBqNTt7U6XRO6ihqtVry8HVYW4BCTenNKOKHEHJj6yARuLppSwTEm5CW"+
                                 "TzxxGYr4+rWI50kEhEZLIhAOh1c2zaaRFchkMjCbzSvFSrAiQLt7eacqiUSgxl9CpVKtFCmJRGB2"+
                                 "s1X2AnuBvcD7EqBv9ONyZUyDb+G0WkeVvwB/IaBWF1CpneNEpk7Mp89fmqz59KuYhQ4I9I1OA2S1"+
                                 "DajX9FzAcjC7IBvdlqBe05PRfx6O+wdC5OY+KMj/aAAAAABJRU5ErkJggg==")),0,$$.Length)))))
#endregion
$CMDPrompt.add_Click({CMD_Click($CMDPrompt)})
#~~< ControlPanel >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ControlPanel = New-Object System.Windows.Forms.Button
$ControlPanel.Location = New-Object System.Drawing.Point(437, 10)
$ControlPanel.Size = New-Object System.Drawing.Size(79, 93)
$ControlPanel.TabIndex = 7
$ControlPanel.Text = "Control Panel"
$ControlPanel.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$ControlPanel.UseVisualStyleBackColor = $true
#region$ControlPanel.Image = ([System.Drawing.Image](...)
$ControlPanel.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAAA/lJREFUWEftlttPk3ccxt/ESxMvpsxsiUvUpWZ3S/wfdrEYs5gsTNhB"+
                                 "Nw9bNiZDpzIP4GKWecA5QA5ONBOEhl1M0GAyMzfcPENBpKVAS+nwQEDDAlVZfeuz5/lBOdgW6+Ld"+
                                 "+kue0PcNfT/P9/jWSp3USZ3oWZJzZOi1nKN4Fi3JrsCslQXPrvR9Q+PYyaMHOm8BlTefruN9wI9/"+
                                 "ASUBYL8P2NsFfNsJfEPt9gJfdwD5HmCnG9jeDmy7AeS2AVuoHfwsE+PYySMDevgPwUmduWOj7+8H"+
                                 "CIVCE9J1w20bpb2EEbiLsDzCtlNfEbiVwM0EbaJyWoHsFuBzF/AZ9UkTsJHXSRm4PBg2wNPuAayr"+
                                 "6zGfw+3r8GCg0XxuHhyNC3+FX55fGsB8pufFKXq5PIiPrwFf0MhTDdQxQkE2numFo7DdSNf2WQfs"+
                                 "8w6M+gswPDyMysCjmMgFrw1EcIrPkuopZ08EaYcCWHsV2JCMAaVZkRt4EVXsGTNQTwMN1C8LEOpr"+
                                 "gO9eaAK+9Fg/Fhf1YXZB9zQ48i3Us2fm0cBHNJDVnIQBwZR2Az/kgaOk09wLn8tAuDED//z6Bh62"+
                                 "5JosRCMXPKspMi3taRLBgkurrwCfsgxJGcj4ycfI3TTghaO0y9yLSuCoBN/gimARDajhBHayBIpa"+
                                 "qqNqWIK5NPDBJTYis/CfDDjKKP6ds+cGrHwXllV6jQFFLvjrR/tNt8uAwFbubwYunaRk4L2LwPpk"+
                                 "DKgHalr6WQIZYAlkglpY6IG1ywUrrwnVrtvouhuKGbUn0y6wUXEAmTSwlmWY2QDnW3OuLJgpUB/I"+
                                 "CDV3T6uBZ9Z2megLO+2YORdcKY9GfpIL64Q/ghdo4J0LwJrLMxjQhiunAS2Z63dHjQllQuVYWevD"+
                                 "8iqviVzw4/5wDFxzrqgFVwkE/3lcMpD+B/Ah+yChAa1XwfkMFPvp/qaN4NDYJhwZGTHgtoH7cSMX"+
                                 "XHP+UllwWtoFltJKg3j7PLCKZUho4BgNROGF3PEHqQPd3Pfc9bnc4YnWaxSuOdeoqdvVcKq50q7I"+
                                 "BV/RCLzP64QGKtiA8eC7uXKfB/yt34F3/5zBwBGmX/AS/2M4gzaqqRO9Nsp9tkn7914b33XYKKCa"+
                                 "BjGhZOHLqQzeS2jgMNOvyAW3nVy5UtUCPCq3YiSwVTFmwMq+AiunGdYmTslm7oktbooju1XqMBJ8"+
                                 "2Tkam8lAWc9Y2ot8j03kVQG+drttHJwS+T6Pjb3u6RlIJnLB36TSeT9xD2gC2ANFzIJKcYD1n/pj"+
                                 "4kv2gN7neqXqraYXi3a71qs2nJaM5lyjpm5Xw6nmSrsiF3w178c18GrW4ZifZPPWFJt/fu6K95Ms"+
                                 "dVLnf3os618/TIziHJ6OYwAAAABJRU5ErkJggg==")),0,$$.Length)))))
#endregion
$ControlPanel.add_Click({ControlPanel_Click($ControlPanel)})
#~~< FileExplorer >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$FileExplorer = New-Object System.Windows.Forms.Button
$FileExplorer.Location = New-Object System.Drawing.Point(352, 10)
$FileExplorer.Size = New-Object System.Drawing.Size(79, 93)
$FileExplorer.TabIndex = 6
$FileExplorer.Text = "File Explorer"
$FileExplorer.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$FileExplorer.UseVisualStyleBackColor = $true
#region$FileExplorer.Image = ([System.Drawing.Image](...)
$FileExplorer.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAAASJJREFUWEftljFuwkAURH2k1CkgVQouEW6Qu+AuFRJnQKLnAMESDZFA"+
                                 "ShMoaS2wFhmNM6swRN8Lv8JPehXzZ7bDWUdHQ1n0h4fiJZhc9BblZ/8Jp/ehKX+e/pxVxI8oi97+"+
                                 "ro9oij/m+dlqN74wfkC1egthmyc6GmKWxOX/eVwOQrV+F6XtxCxRIU8xS1TIU8wSFfIUs0SFPMUs"+
                                 "USFPMUtUyFPMEhXyFLNEhTzFLFEhTzFLVOhrMwmvs+/f/4e21rd1h+rGLFGhW8Yb6w7VjVmiQqow"+
                                 "RdWNWaJCqixF1Y1ZokKqLEXVjVmiQtayWOsNZokKWctirTeYJSpkLYu13mCWqJC1LNZ6g1lSf6f9"+
                                 "DVnLYm034ptQocrw01VSbjoemSw7AR0vBdoltyuNAAAAAElFTkSuQmCC")),0,$$.Length)))))
#endregion
$FileExplorer.add_Click({FileExplorer_Click($FileExplorer)})
#~~< Powershell >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Powershell = New-Object System.Windows.Forms.Button
$Powershell.Location = New-Object System.Drawing.Point(522, 10)
$Powershell.Size = New-Object System.Drawing.Size(79, 93)
$Powershell.TabIndex = 5
$Powershell.Text = "Powershell"
$Powershell.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$Powershell.UseVisualStyleBackColor = $true
#region$Powershell.Image = ([System.Drawing.Image](...)
$Powershell.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAABExJREFUWEftlvtPFFcUx/kT+FP4oUmbJmVdFrCwLrtAMPY3bQImVcqu"+
                                 "vFYedqGIu8C6Ypq0/oSP2ibGWGjSBFGyio8qULewWrQW1pbXyorbFeSleDzn3js7M3uHR/sz3+Rk"+
                                 "eMzcz7nnnvOdSdvRjoz0yeHgfktNCPK+iqTEBHyKoVy3Hce013G8jkN+8yTsOR5zCKReWVWD8eLO"+
                                 "d6BE0am3UBRYg0L/Cjg6lsDRvgj2tldQ4PsXbN55sLXGcLHnYG2ZBevX02zxPM/fLGmC7W58Crsb"+
                                 "nkBu/RjkHH0EOe4w/vwYbCdiHoFUZaoIZtCDEvzkCrjOYwIaeIH3JS7yAuFzsKclivAZDm/aAF7H"+
                                 "4dm1I+x3mzfuFFhVVH5amCVwaj0Jn5h7B6T+8Joe3qqFT0F+0z+4+2fG8KMczo93AjcSzxBYVZnl"+
                                 "/V0E5fA3CF8Fh3+JwRX1j65uDqfzbvwL4X8awi3Vv7GjEki9LJVDES280L+M5/4afh5eE3iu66PL"+
                                 "WPoN4McU+GPIrfsD4Q8h2z0K2TW/I/wBZFUNUe8EBVIVnn86ZZwKt7cvgN2XwPKvCjxX+2VqOAN4"+
                                 "owG8VoEPsyrgmkYNOOCg0kjwtgSeeRzLPs92rtXJ7vn/BM+qHGR9Ye94LY+gqeKWp8AXl+H4N4Ir"+
                                 "43Z9RN8T/p9ioukQ3mAAr1Hh5iP3WNXsgXi6wKoyu+4HlVnfCK7M+uizFYHn6rgSVTse4cq4MXi1"+
                                 "Ct/lugvW47GIQOpFGW/XaEq8kzA+q++J0gDtXJ11pePR2JJwuuJYdwmkKlPF7Qw6x62NZippNH2h"+
                                 "BYHm+vbysAF8CMyV98Hs+hV2OW+zIykMrMkGlOW656RdSnCDWT/03Yy0+1eLK5BX8aMx/AjB7wD2"+
                                 "GGtWe2BVNiBz5WAXA28B93e/gMXldYHl6h8ch8yy77HEdzaFm768yfpJIPWyuMMRCa4xmhLfFNwd"+
                                 "03c/7drbdRM+LL0iGU0Sjkkp8MzyIL3QjAwolE7Wqcw6h/OmI/jhM1GIxt8ILNdYZA5Kai+ByXnL"+
                                 "cNaTcPy/AqfEijvXZQPCMXFQeaVxa56GizcSAqnqwi8h+ODAD2BBqDGcdzw1nQKn4C4LsgFZqkMe"+
                                 "gmrhe9tmpVmnkn/e3AMff9HLZv1g51M4fy0K5/pmMWbg7NVpjCk42zsJzm/CWPoBBN9IJmBtmcEG"+
                                 "BNmActwjwdRZT905a7SDF9nZKkazlYrrOVgJmy9hbEDkYFo4Gc2Z3pdiGeCNVtYtXE41moWlt+IO"+
                                 "Y1mdl5JwakR8y8oGlFP3kBmQkdGUn34AtqoeyHQOcLjmi4bG7bOWEJSduIbRx6P1KovS1l7YV98D"+
                                 "H5XhsyIBur/oNOwXWFXZ7rAzv2lSN+vK222zL5rNZl2BaoM2VBIA2YCwpB4qeSpc/qLBt9v/hFPY"+
                                 "vIm4QOqV2/DIQTDKcOPAhLYZdG/q82RuhuXf0Y7S0tLeA2cnJwpPGMfmAAAAAElFTkSuQmCC")),0,$$.Length)))))
#endregion
$Powershell.add_Click({PS_Click($Powershell)})
#~~< GPUpdate >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$GPUpdate = New-Object System.Windows.Forms.Button
$GPUpdate.Location = New-Object System.Drawing.Point(267, 10)
$GPUpdate.Size = New-Object System.Drawing.Size(79, 93)
$GPUpdate.TabIndex = 4
$GPUpdate.Text = "GP Update"
$GPUpdate.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$GPUpdate.UseVisualStyleBackColor = $true
#region$GPUpdate.Image = ([System.Drawing.Image](...)
$GPUpdate.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAACBpJREFUWEfVl1tMm+cZx7nYJk3bRaRGmqrdLRe92FRpN7tao02Tpkmb"+
                                 "IlXpIQmZumZZUpojOXFwbIMxNjYYGxtj8BmDbWxjbIM5BmOTEszBBWPOiRMIJTRxKSEkKQES/nu+"+
                                 "z2RJPLaRdpq0V/oLZD4/7+/9P4fvJe3/ctmdbluNsz7kcDiCzgZP2Ol0Rm02+5TD5Zqzu7yLqnL1"+
                                 "18UlspliuTwqkcm6ZQqF32A225UqtcFkMqmMRrO0vKJC6HZ7T2+FfL3VFx3FvrNc/G7ffrzzm9/i"+
                                 "13v34nhGBgaGRtA3FcfhI0dhdTnAkxaBKypEdn4eMjkcnLt8GWeys3A6KwsZ5y+AJxJjK+TrrXA0"+
                                 "hmh8BjpPM3R1btR5mtAXG8f0l1+hdTCKg3/5GDaXCwKpFDyhCDkFBbiUl4fzBHA2Jxtnsi7ieGbm"+
                                 "dwAYjoFZ66TlJ99gfmkJwzNzuDoRhy8cwaGPkgD5RWLwCgqRIxAgi8/HRS4X53JzcTY7B5+cO/cq"+
                                 "wOTkyFs3x9uNs+PemZkJ71ezE77ECzUmZiebErNTpMnGxMxkC25Pt2J2qgVz0y2YHuvAyKAJQyN+"+
                                 "+HojSN9yIF8iAa+wEJyXATi55ACTgvPgPweIRCLfHx3oFD+6fx3Y/BLYmKHj3XxFm2tJvfL501vY"+
                                 "fDqPL2b6MRIuQV/nGZRp9fjo6DHY6uvZFPBFInAoBdn5+bjE4+MCpeE81cMpSkO+RJoE6HU4fjgd"+
                                 "vVbL2Lr5dAWbG0uk+/9BS/T0IyQW76HdVwKb5k+QSz6EpqYeHx87AWdDAwqKi5EnLsJloRC5gjxk"+
                                 "UR0wEIwTZ3NyICyRJQHa2y0/uj42ZAeeUeCvKfAD0so2epjU5vLWc6sIBV0waPOg0fBRqi6H0mjD"+
                                 "oSPH4PE3oVAmIwgpC8EliOdOZFFXnCcIsVzxAuDGeMRGnlLwJYwOR9B/rRd9PddwrbsHnwWvojsQ"+
                                 "QvBKCF2k2zfH6dFFAniMYJcDHL6Aiq2Iio7ZUIn0I8fR2NyMItqAgWBSkScqYush6YYAlwhCqlK9"+
                                 "5ECsnwA2KHCCfuxQ5EYwYEdjZw9svnZo7V4oDHakH/0U/rY2FCuVdEo5QZQkIYqKyA3qjMJkXZRq"+
                                 "KrcB2LiLzfW7eLb2r8X8HRv3CGCFBah2+qCzuVFpbUCp3kop+ATNHR2QqzUsRJFCAVGpjHJeggIC"+
                                 "YecDFadKp0sFoM6mLthZCqhbsMwCcAUikhg5/AI6XTEOEkBboJM6Qkt1UYGS8nJIy+SUEjnEslKI"+
                                 "SAUEozGZUwFWiWGOAjPB6ZT/JObUjBbIgXn6uUgANkzcuYshmoy9YxMIDH7OpqCtsxNqvR7KKi3k"+
                                 "Gg0LIiMQxhFpGeNKGfS11lSAx3Sy2Z1pnURQwYAVo3N3XgE4fPQk2gNdqDKboTEaoSarleSGoqoS"+
                                 "CoKRaypQWlGB6jpHKgC12tP4zlKwQYMId1iAERrDrwKcQGf3VRjohDpLDarIao3RgHK9ls27imCU"+
                                 "2irY3A2pAMvA2hQFZoLfShFNx+fajNNzNDUxRwC16Bz4HOHxSYSGomjr7cMBqoGecBgWpxNGm521"+
                                 "Wl9jgbbawsIwqjSa4GpsSgWg4bLBFFiK3dtpbYIFCwZqcCLzIk5mXkI2T0AtV0ZFmIHw4CDsNA1r"+
                                 "nC7WarPdTjA2Vgarldyphae19QXADRaAevvJ8M5S8IR5I04TgAUGRyOUJgcklRYIynQswMDwEHvC"+
                                 "Oq8Hdreb7gcu1JIjjCsWh4OFauq8kgpAlb4a2f7EqVodJoAJFkAoU0Gs1EFImwvK9JSCDAzFYvC2"+
                                 "tsHt98PZ2AinzweH1wu7x0P3B4IitYVCLwGMMwDUfmuD22+YKgYUowRQTS8YITKzuPSmEyAnT0Rt"+
                                 "eAKxiXE0Uys20kT0trTAQ3L7m1Hvb0EDjWlPix8BcpgFCAb534tFwtUA9fajwM5S8DhEAIMEYIa6"+
                                 "xoUSbS2EKuM/HBibnkI7nbAlEICfQJpoMvpJrV1daCBXfAQW6utLApjN5p9+Fqhzbay0YvkLx471"+
                                 "dNmNrg4dLhfKwBUrwC+pQL68igWYiscR7L2GjqtXWQV6etBJsrrqoTUYKT3t6IlEkBa/3l14795Y"+
                                 "7EFi4P6zxxGsPxzeXo+2xPz+zSgLMB4Wo81fhou8QrrvFdBFg1IgkOAQpeD6zAx6qBNC1I7ddFKm"+
                                 "4pmNK6p0sNqdaL4SQHhoGGm3YqaHWHFjfbEeq4mdaX3Ji8VZK1odGahVvwe5wQaR2szan0zBp4jf"+
                                 "nkMvdUJvlLrB10jTUA9DdS30Fgtd19wYmpjGABVqml5xmN/tfn+pu/7g3Z0q5DmCdns6JPw/4vSp"+
                                 "g8gWSMGVKNkUPAeYnZ9HZGwU/aOjbA0ww8dYY0UdTT9m40qDbnH37t3vsDXwusvXEYLaWEOvVBky"+
                                 "c/g4eSEXGWcvIjObi2y+EOl/O4nbCwuITk1heHIS7d3dMFntaA0E0Ue27//gg1YKszsZ7VssBqDO"+
                                 "fwV6hw9KswNSdgAZ2NPzJGrWgfnEPcRuxBGL30D/cBSR2BhUlZpnP3nzzVNbYb79YgCERSWbqioL"+
                                 "Ctm865Anq4Q+9j7aRn/BAiwsJhC/s4DltQ3cWLiD9w58OEBf/XkywndcHJFCSurniMvAiCuhu5/c"+
                                 "hN9H0vDu0htsClboHxa6XUBrMm3s2rUrd+ur/93F55f/mCMq+wNHrBByxPIQVyRZ5UkVeDf9r0g8"+
                                 "WKZc7w/QYz9LPv0/WHw+/wf7Dvz5l2//ai9vz549x7Y+/jcrLe3vvmKkrCvh/FEAAAAASUVORK5C"+
                                 "YII=")),0,$$.Length)))))
#endregion
$GPUpdate.add_Click({GPUpdate_Click($GPUpdate)})
#~~< PingTest >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$PingTest = New-Object System.Windows.Forms.Button
$PingTest.Location = New-Object System.Drawing.Point(692, 10)
$PingTest.Size = New-Object System.Drawing.Size(79, 93)
$PingTest.TabIndex = 3
$PingTest.Text = "Ping Test"
$PingTest.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$PingTest.UseVisualStyleBackColor = $true
#region$PingTest.Image = ([System.Drawing.Image](...)
$PingTest.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAABYJJREFUWEftl2lQE2cYx18gFAI4VMSDgtixKKOtR7VScag61oOKCtHE"+
                                 "IQI5NpvNJiGScHghpkBEFMFCsdUQCEiLXDrWs1QRK7Zc4tFRpJWig9pSK8KIKA5mn+6uYbRSnem0"+
                                 "tV/4fXuf57/P89/3ml00yPPsBsI1s0u0cELG6LetoX+MJ+7mlXY7LCiX0gwHQDbW8EDo5va5lIqf"+
                                 "dje8bnSC+3YPwsMJAGwEpQI7Ov3iBwfCPqMHvS0zGKZwUaXcEDbStZWZlMaBVTwP44w2EGB6JP9t"+
                                 "xZGZlB3fLl9zNNChgTJMk1XPFaPlaKxVymDD5/O5IpHIkyAIb5VK5aLXP2nGwkNei8umCnMfKufT"+
                                 "JjhvbRgV/2HRlN7dD/A+ExAh/cb+xB4q3NlsIctim5YAN8zx+LKtvkOKuldPLu7TtvIO+/UiPhIx"+
                                 "OoFAYCeXyydJJJLtUqn0DCbHaqQyaZZCpvCjzdizxfgoaGa+7+20LlF3PWVYyrycQwSnXFG/APIf"+
                                 "q2pyKelwVvcseRT5QfYDade7n7x5343nwjsLu+1PWRLLIq98BG46l6NcPtcT6ZFtLBHrL5PJGhMS"+
                                 "NoLJZISsTCNE6zYBbaY1Rh4TxBhE4cj5NYnd5ysrZ1HHHm+4mNYSPsJRyAnwiHfryO6RQQ6lXG5t"+
                                 "+5R8en0MbaHAJRya5qWP8zxN6Sfm9CjuzDD6dKIQFMxo9Jj+DUyMHTBsToYrTZfhdvtNqK1phBzj"+
                                 "KVitTQFSqjiWSqR6swUD0WQP/dAWUzcJW5uFIUzIVmJTF9u8DPItKsOAZaAN6GMuB4G90KZCbJ7j"+
                                 "2EBtW5j8ayh46YddR0I0jtGoI9TvkXJF66FDB+m9CdDZeRcaG76HkpJzkJJSBQQRdSsej5nHFgxG"+
                                 "r9tLOd/suCWBzZdCNWxsFToWfnI2FFgiS9IpHZeN9WOmVAlRlxaDfSjneEzFAuefIWv+phsrKE+9"+
                                 "WxsKQxMZDWNASSpbjxw+BF2dHXCttRm+PVUBhYXnIT3jJyAjN9zZiEUvYwvy0XDaQNWOm2LY2iRU"+
                                 "sTEhqgivmg2Flsi9ZhA7srF+8igVlty2inJVc5v84yeM2XshevwXD6Pa/cw+3WgFIhlNmDRsYiQW"+
                                 "eT5jRwbU1dZCdfUZKC/9Dkw57ZCYWAFyOXFxiyJpCltwCZrjleT2S8E9zeOMFnEQIpC9LWZbv/Zq"+
                                 "MJgt6o8HLIGRImd+1ov/7m8a34Mm0V5pzliSC9ZcDYGhcc5nUQQa78X34kbLotcpFGR3aupO2LXr"+
                                 "BHya/QMYDCeBJLX3V+OEnjmSHgIPbyfcoVRUNwcqLQl16v0fDrNbZDd3TKL7nez7+KM8SrGYbfos"+
                                 "9B3glGtR7llDb5IhUm7liKXOI2Pqee98bVnXLKjwu0cvQxSjo4+aKymVZ2EY8VCjSYIoevPJcLxP"+
                                 "Jokwr9esf3K8+IgfsNe3vdiivbWzDQtB05ETJ5izL/LcInoDKqvoXu6s7nlyQDnd3EdeX3liFtBT"+
                                 "WBiY6eNwFlID1HWBGiR5shH7UauV1wyGJEhIyASC1HXheMQSawohMRq18rS/9Dy1jccMOQttNwUd"+
                                 "mAZ5faoOEyUPYjUvIo8+o9k9WKVvxqjikeTIEdbwAOLion4sK/0KcnMvgEq1pUMk4rHN/gp3tfO2"+
                                 "jC5xdT4VqbCGXk4BEN6BJVOZ6Xzh/a+L1rYUF+2n74AGUCq3dEokPIE1NYCxa4e6pnfJfKzDfwed"+
                                 "TttS9GU5GHfV0gZSXmrgP2HQwKCBQQODBp4aqPl/DMTGaVvLSw/S3wLnQK1OvfvKDWg06jZzXhEY"+
                                 "jXX0DCT3isXLI6ypVwP9ab5PFxUNOl08KBTKK3K59H1r6tWAYdgYHMe1OI5tpM3MoEN/589pECsI"+
                                 "/QGrPOUbl4yPgQAAAABJRU5ErkJggg==")),0,$$.Length)))))
#endregion
$PingTest.add_Click({PingTest_Click($PingTest)})
#~~< RDP >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$RDP = New-Object System.Windows.Forms.Button
$RDP.Location = New-Object System.Drawing.Point(12, 10)
$RDP.Size = New-Object System.Drawing.Size(79, 93)
$RDP.TabIndex = 2
$RDP.Text = "Remote Desktop"
$RDP.TextAlign = [System.Drawing.ContentAlignment]::BottomCenter
$RDP.UseVisualStyleBackColor = $true
#region$RDP.Image = ([System.Drawing.Image](...)
$RDP.Image = ([System.Drawing.Image]([System.Drawing.Image]::FromStream((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlz"+
                                 "AAAOwQAADsEBuJFr7QAACuRJREFUWEetVgdUVGcWfrrqWlAxkigRRGwobjAEYwtrxxIQ0STGaNrG"+
                                 "FjWxm6g0pQUEQYQBmZEmQ4dBBnAoQ2ecGdoMvSNSjIpliaIYwG/ve46bnJPdTdzde849r5z33+/7"+
                                 "v1vez/w7WxX7+ZQvIr8/4ZTu2/BtTFjvnvBUFFUWIaFQDsuz19o3u8lirV0SPz+cGKGrWfL/MbOg"+
                                 "78cvE33isD56f/+HKYdwIN8RnlU+2BZbiIa7zcisasY6dzF2hObDyiMHX/KTHlu6RTovPeExVhPi"+
                                 "v7dFrsdNTIWbFWsLTWEpugLLhAbENonhXFKMxcGFOCyR430/KVby8vBFcg22+Cuw1TsTNi4irLlw"+
                                 "ULnw2F5jTahXN9ODp0xMgjfcXJA7A5+p5uJycwwKbteh7U4GmjrLIShW47CiAYfL23CgpBMHJK3Y"+
                                 "4VOELafFsHFKwB7lB/gsY2OH8YeOr07C2NFxhMnlD2WmGXpYppgG5/qz+PHhXfQ8Lsb1wmzEx6ci"+
                                 "KjoN1zLykVEkg1R+HblKOTLlCsRcK8QP/hLwMiJwNjYIu06G1JaVFS0pVyiMFQqFnlKpnHz9+vXX"+
                                 "qqtztUpLS0dXV1ePyM3NHQZgqAaeYfQPbjptJNfHEtVUWNeYgn/rOPr61OjtbUJBQRZsPriEoaN5"+
                                 "mGOShMUrUmG1NQO7juTDzq0U/oJyXL1Wjuy8MmTlluJa+nVk58jvlpQUq8vLlJWVqmJpdYXySqVa"+
                                 "4Vyplh9VqYr3qFQla0tLs8Zz4LOtHHUme8x/OrNkHGZlGuC9srcR1PM+KvozEPboJySnpGDl6ktg"+
                                 "mDAwf04DMyoPzOhSMOMbwIzpgpZRD86FPkZBWQ9SCn6COO8e0otuI1N5B5Lrt5FW0IZseeOArLjx"+
                                 "YbG6uau1ra2zqkpVER0dbcURmLva6+MpQgPoZY/HlNg38ZcSXXzdboedHU9wpvsBQkLiYWTsR8Ch"+
                                 "YHTFYPSywUwtATOtkZ67MMSwFwGxwKOnQPsdoKkLqOsAqm8CqlZAUT8AWU0f+TMkyXpR2/IAZcUy"+
                                 "XLzo78IRmLbBNnVK+AwYHTsOY1svmCd/B/OoUqxTdsHz1h36MA4TJ10AMzIEzBtJYN7MIhJyMIbV"+
                                 "YKbfIBL3sd9pALe6gY7bQNstciLSTs9d94FbD8gfvnBZHVDT3I1sqQQXLlz8hiOgu2Ff11Tnv2L2"+
                                 "6hjM3CPFAm8pzMJLsan6Ac7UtsHHJxYGxkEYrk0KTIgjwHQiUATGQE0EmonUbSzf/hRltUAD7bqi"+
                                 "GahsAapuEFg7qdH5QpUWIpejHkRdYwdEiTHPSIFPOAKTlxzpn37QGm9Z+2P2F3F4x0OMhSHlWCq+"+
                                 "Add8FZydo/CeRRT050SB0YoEMzkVzJR8IlAGZkYdPXdi6tIeiLKeQ90AyKvIawAl7VZZD5Q0AmVE"+
                                 "qpxIiYqeobK6HkJh+EMej2fJEZgyyxsG1odhdMYK07b4Y+beJLztnIZVAgX8JTKcPCWEhVUczNeJ"+
                                 "MGQMpWFiAqmQCUafTUMVkWnFCKNuKsQBFKkAqZK8hHZb/sLz1EABkcquBGJyH6O6qgICAb+dCCzl"+
                                 "CBgaX34yZeZFGG49COMDRzBrqwRG3+TjvTNZEKbk4tjxCCxfG4Vtf0uDlg4fzFjqBp142jl1hF4B"+
                                 "ESAldGux2+4BUvP6kZjF+iBEOc9xNRe4WgCkyYC4HCKQ9XciUIrAQH6Zv7+/AUdgumlUzXSTcOi/"+
                                 "5Ys5m+0xd6MAc63jsXRXEhKTJNi5R4AF5uH4dFcaJs0MphYkEjqUjtdJiUlEQjcXjLYMa3e0ICyx"+
                                 "B8Fxj3A5rhfBCX0IFfUj9OoAIlOewz8GiE55gCq1nAgEJnHgrM0yFfJmm0VjxttCTH8nBDPeP0F1"+
                                 "8AFswnchSSTCRpsAmCwMwaaP4zH33XAM1eJRMZIKr8dSASYTAeoK7XzMX1uNc/x78BY8gJegB+eD"+
                                 "H8M79Al8wvvgL/wZZ3kDiBZ3QlVaiICAAL4GnmFmmEWvmG0WCaN346E/lw9dq92Yde0NbBBbIkqY"+
                                 "gMXmVJwmfCxeFoK3iMhIHSIwNohqIYJIUFdMotkwIR16ZgoccWrHqXM/4qTHXZzyvI/TXg9h790D"+
                                 "x4uPcNDpMVIymlFUkAHKv68GnmH0FseOmrMwWjl3YQKmzfeFnt0CjPGagHVhm8G/FA1DI29MM+Jh"+
                                 "1jweps3xxzjdizQBaTBpXyYSQiJB9aCdhPGzsrFtfx2N50I4ughx2s4DR4+c4NzW7hwcXKJxVZyL"+
                                 "rEwx/AMC7DXwL2y+eYLNMksxFq0OwaKTX2GCgw4+EXwJD/dwmoAumKDrg4l63nT1xKiJ50iB82DG"+
                                 "kRLaVBM61JqvxZGCSfjONgROTm4I4vORlpaG4uJiztl79p2LixvlnzfI51920kD/Yis2pQSusRFh"+
                                 "2ZZAmNitxWnhCfzgGo6JBKgz2QfDxrqDGXKW/gmOdHUCM4KIaJEapITh/Ajs+/Y8TU0/NDQ00E+s"+
                                 "F4ODg3j+/DkGBgbw9OlTdHd3o7KykvvG1dW1NjIy0kwD/cI++ihuxIaPpekrrUUw3+6FM1dccSU0"+
                                 "DAkiMQL5Yuw/GIt164KxYAEPUw18MHqMJ5Fh/Tx27vTmAt+5c4cD/bWx4Pfv34OfJBC1TS2or6tj"+
                                 "/wPw9PRM00D/YsuXO2otWeufvMrmKnYduwQHLzsIhJ5Il0ShVCFFQ60SSoUMMbFSnPNMwd4DIhw6"+
                                 "HEmyu3I7/zX4y53fJlKOCbYw54/DD8lhaGpshFwux9mzTj8HC4L3aaB/bcMWG8zeLF6+nvfEwvEr"+
                                 "bPTdjlVnLLHeeQP2eXwPL9pp8tUo5EsTkZuZiEuBPC6/rOysvZS9t/cp7t2/D/sYWyzyGweHhCtE"+
                                 "shFVVVUoLy/j1nie+xcqkL1JbjV8+MSLY/Wnq/RXLH9munsn1tt7Y6udBNvsMmF9KKJ/zfaTnZu2"+
                                 "7qizt7UbZIvsZc6T5cmILExAT08PmttvYZmPEVb6rEGpupKAy7nd04mIK0x7O/v2F5C/tZHkhuQW"+
                                 "DDP00BBmuM+wIVphw4aNEv5pxEiB9oSJoassLPIcHBxajx09xlU6C97f34+9cd9gTagOAtLD0Nzc"+
                                 "jHRZMZZ6mMDCayOkBUUoLCxEVlYWt+bokaN9HNrvGHt2G02uM2/evBm7d+/eHxsb+5M0Oxupqak4"+
                                 "TucINhgre19fH37svodPI77GMr423OO9ucpPy5fDzGk1Dgd5QSaTIScn55UI/NOIuV1eXl4/OSdj"+
                                 "UVER3FzdODnZgmNlZzuhqfUGrANXYAnlXiCK4PIuK1WjoqICKkqDgtLArrE9bduhCf37FhQUNJwW"+
                                 "qVn5smn3LHhJSQnCw8K5grpLfc6Ct7a2wjHCGWZeY7CP/y3UajXq6uvRSNXf1NTEdQtLhF3j7u4u"+
                                 "0YT/Y0bDw5eAn7OFREduLnh+fj4NFjdO6vabN+Eecwnz3UdhT8AB1NTWcuAtLS1oa2tDR2cH2tvb"+
                                 "Qcdzrg35l/gHNKH/mJEKo+k0K2AJsLLWa4JHRETAz4+HmppaFJepYRfqx1X8S3AWlFWn61YXpwL7"+
                                 "rYeHxzVN2FczOkhoBQcHb6ZCSlSpVHdraZesEvSP5yYcS45NDVtkLHgzAbIE2I5gd86Cu7i4KH4z"+
                                 "il/VKMAEqVRqkZycfFoikfhQfUT7+vrecHZ2GWTzyxYZS4J19p59x8rOjuD/Gfw/GTte2QnHDhm2"+
                                 "zVhn79l3vx29DPMPrFpP1LfqNd8AAAAASUVORK5CYII=")),0,$$.Length)))))
#endregion
$RDP.add_Click({RDP_Click($RDP)})
#~~< ComputerNameBox >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ComputerNameBox = New-Object System.Windows.Forms.Button
$ComputerNameBox.FlatStyle = [System.Windows.Forms.FlatStyle]::Flat
$ComputerNameBox.Location = New-Object System.Drawing.Point(872, 10)
$ComputerNameBox.Size = New-Object System.Drawing.Size(282, 40)
$ComputerNameBox.TabIndex = 1
$ComputerNameBox.Text = "$Computername"
$ComputerNameBox.UseVisualStyleBackColor = $false
$ComputerNameBox.BackColor = [System.Drawing.SystemColors]::Info
$Panel1.Controls.Add($Label2)
$Panel1.Controls.Add($Label1)
$Panel1.Controls.Add($ComputerMGMT)
$Panel1.Controls.Add($MMC)
$Panel1.Controls.Add($RestartComputer)
$Panel1.Controls.Add($CMDPrompt)
$Panel1.Controls.Add($ControlPanel)
$Panel1.Controls.Add($FileExplorer)
$Panel1.Controls.Add($Powershell)
$Panel1.Controls.Add($GPUpdate)
$Panel1.Controls.Add($PingTest)
$Panel1.Controls.Add($RDP)
$Panel1.Controls.Add($ComputerNameBox)
#~~< MainMenu1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$MainMenu1 = New-Object System.Windows.Forms.MenuStrip
$MainMenu1.Location = New-Object System.Drawing.Point(0, 0)
$MainMenu1.Size = New-Object System.Drawing.Size(1157, 24)
$MainMenu1.TabIndex = 0
$MainMenu1.Text = "MainMenu1"
#~~< FileToolStripMenuItem >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$FileToolStripMenuItem = New-Object System.Windows.Forms.ToolStripMenuItem
$FileToolStripMenuItem.Size = New-Object System.Drawing.Size(37, 20)
$FileToolStripMenuItem.Text = "File"
#~~< ExitToolStripMenuItem >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ExitToolStripMenuItem = New-Object System.Windows.Forms.ToolStripMenuItem
$ExitToolStripMenuItem.Size = New-Object System.Drawing.Size(92, 22)
$ExitToolStripMenuItem.Text = "Exit"
$FileToolStripMenuItem.DropDownItems.AddRange([System.Windows.Forms.ToolStripItem[]](@($ExitToolStripMenuItem)))
#~~< HelpToolStripMenuItem >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HelpToolStripMenuItem = New-Object System.Windows.Forms.ToolStripMenuItem
$HelpToolStripMenuItem.Size = New-Object System.Drawing.Size(44, 20)
$HelpToolStripMenuItem.Text = "Help"
#~~< AboutToolStripMenuItem >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$AboutToolStripMenuItem = New-Object System.Windows.Forms.ToolStripMenuItem
$AboutToolStripMenuItem.Size = New-Object System.Drawing.Size(107, 22)
$AboutToolStripMenuItem.Text = "About"
$HelpToolStripMenuItem.DropDownItems.AddRange([System.Windows.Forms.ToolStripItem[]](@($AboutToolStripMenuItem)))
#~~< DonateToolStripMenuItem >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DonateToolStripMenuItem = New-Object System.Windows.Forms.ToolStripMenuItem
$DonateToolStripMenuItem.Size = New-Object System.Drawing.Size(57, 20)
$DonateToolStripMenuItem.Text = "Donate"
#~~< DonateToolStripMenuItem1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$DonateToolStripMenuItem1 = New-Object System.Windows.Forms.ToolStripMenuItem
$DonateToolStripMenuItem1.Size = New-Object System.Drawing.Size(112, 22)
$DonateToolStripMenuItem1.Text = "Donate"
$DonateToolStripMenuItem1.add_Click({Donate_Click($DonateToolStripMenuItem1)})
$DonateToolStripMenuItem.DropDownItems.AddRange([System.Windows.Forms.ToolStripItem[]](@($DonateToolStripMenuItem1)))
$MainMenu1.Items.AddRange([System.Windows.Forms.ToolStripItem[]](@($FileToolStripMenuItem, $HelpToolStripMenuItem, $DonateToolStripMenuItem)))
$MainMenu.Controls.Add($PCDiag_Output_Log)
$MainMenu.Controls.Add($FL_Zip_Selected)
$MainMenu.Controls.Add($FL_Open_Location)
$MainMenu.Controls.Add($FL_Open_Selected)
$MainMenu.Controls.Add($PCDiag_Working_Directory_File_List)
$MainMenu.Controls.Add($CheckedListBox1)
$MainMenu.Controls.Add($Outputbox)
$MainMenu.Controls.Add($TabControl1)
$MainMenu.Controls.Add($Panel1)
$MainMenu.Controls.Add($MainMenu1)
#region$MainMenu.Icon = ([System.Drawing.Icon](...)
$MainMenu.Icon = ([System.Drawing.Icon](New-Object System.Drawing.Icon((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"AAABAAEAICAAAAAAIACxBAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAA"+
                                "AAFzUkdCAK7OHOkAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAERklEQVRY"+
                                "R+2WW09UVxTH+Qh8FB6atGki4zCABRxmgGDqm5qASStluCMXO1DEGWAcMU1an1Bb28QYC02aIEpH"+
                                "8VJF6hTQYlUYldvIiFMEuSku19qXOefMPlzaZ/7JyuFyzv6tvfZa/3MStrUtM+04FNhnqwxCxteh"+
                                "uBiDzzDkdctxRH8dxesoZDaOw+6jEadAGpVSfjea1/4eZOSeeAe5/lXI8S2Ds20RnK0L4Gh5Ddne"+
                                "f8HumQV7cwQXewFZTdOQ9c0kWzzD/YwlTbBd9Y9hV90/kF47AmmHH0Ba9TD+/BDsxyJugdRkKQ4k"+
                                "0YMK/PgylJzFBHTwbM8rXOQlwmdgd1MY4VMc3rAOvIbDU6sG2e92T9QlsJqo/LQwS+DEWgw+NvMe"+
                                "SL3Dq0Z4sx4+AZkNz3H3T83hhzmcH+8YbiSaJLCakot+7yAoh79F+Ao4fYsMLtU7tLIxnM67/gnC"+
                                "H5nCbRV/sqMSSKNs5QMhPTzHt4Tn/gZ+HVgVeK4rQ0tY+nXgRyT8IaTX/I3w+5BaPQSplX8h/B5g"+
                                "j1HvBARSE55/ImUcD3e0zoPDO4flXxF4rtYL1HAm8HoTeJWED7Aq4JpmDdjnpNIo8JY5PPMoln2W"+
                                "7Vyv452z/wmeUtbP+sLR9kYdQUvxdXe2N6rC8W8El+N2ZdDYE75fIqLpEF5nAq/U4NbS26xqDn80"+
                                "UWA1WUvvBOSsrweXsz70dFngudouhrWOR7gcNwav0OA7S25h80ZCAmkUZbxVo8n3jMPotLEnCvy0"+
                                "c23WZcenlGtwuuJYdwikJkvxjSQ6x82NZiJmND3BeYHm+u7CgAn8LljL7oC15A/Y6brBjiTHv6oa"+
                                "UErJbRftUoGbzPqX308pu3+9sAwZxT+bw0sJfhOwx1izOvwrqgFZy/o7GHgTuK/zJSwsrQksV2//"+
                                "KCQX/oglvrkh3PLVNdZPAmlUavVwSIHrjCbfOwG3RozdT7v2dFyDjwsuKkYTg2NSEp5cFKAXmpkB"+
                                "BRPJOuWsczhvOoIfOhWGcPStwHKNhGYgv+o8WFzXTWc9Bsf/Szgllte+phoQjomTyquMW+MknLs6"+
                                "J5CafvgtCB/t/wlsCDWH846nppNwCu6yoBqQrSLoJqgevqdlWpl1KvmBxi749ItuNusH2x/D2cth"+
                                "ONMzjTEFpy9NYkzA6e5xcH07jKXvQ/DVWAJZTVPYgKAaUFr1YCB+1uN3zhrt4Dl2ttJoNlNeLQfL"+
                                "yPbOmRsQOZgeTkZzqvuVWAZ4oxV2CpfTjGZ+8Z24w1xZrvMxODUivmVVA0qruc8MyMxoik7eA3t5"+
                                "FyS7+jhc90VD47a3KQiFxy5j9PBovsSioLkbPq/tgk8K8VmRAN2fexL2CawmHD9XZsO4Ydbl222j"+
                                "L5qNZl1C9UEbyveDakBYUjeVPB6uftHg2+1/winw/KMCaVR63QMnwSjD9QMT2mLQvfHPk7mZln9b"+
                                "20pISPgAxFQnFWFRF0cAAAAASUVORK5CYII=")),0,$$.Length)))))
#endregion
$MainMenu.add_Load({MainMenuLoad($MainMenu)})

#endregion

#region Custom Code
        
    
#endregion

#region Event Loop

function Main{
    [System.Windows.Forms.Application]::EnableVisualStyles()
    [System.Windows.Forms.Application]::Run($MainMenu)
    Add-Type -AssemblyName System.Windows.Forms
}

#endregion

#region Event Handlers

function Form1Load( $object ){

}

# Flush DNS Cache
function MO_FlushDNS_Click( $object ){
    $FDNS = ipconfig /flushdns | Out-String
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Flush DNS *****") | Out-String
    $outputbox.AppendText($FDNS)
    $outputbox.AppendText("`n*** process Completed ***") | Out-String
}

# Clear ARP Cache
function MO_ClearARPCache_Click( $object ){
    $ARP = netsh interface ip delete arpcache | Out-String
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** clear ARP Cache *****") | Out-String
    $outputbox.AppendText("`n")
    $outputbox.AppendText($ARP)
    $outputbox.AppendText("`n*** process Completed ***") | Out-String
}

# SFC Scan
function MO_StartSFCScan_Click( $object ){
    $SFCTITLE = '$Host.UI.RawUI.WindowTitle = "PCDiag - SFC Scan"'
    $SFCPS1 = 'sfc /scannow'
    $SFCPS2 = 'Read-Host -Prompt "Press Enter to exit"'
    $SFCTITLE | Out-File -filepath c:\PCDiag\Scripts\SFC.ps1
    $SFCPS1 | Out-File -filepath c:\PCDiag\Scripts\SFC.ps1 -append
    $SFCPS2 | Out-File -filepath c:\PCDiag\Scripts\SFC.ps1 -append
    $SFC = 'c:\PCDiag\SCripts\SFC.ps1'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** start SFC Scan *****") | Out-String
    $outputbox.AppendText("`nSFC scan will now Launch in a new window") | Out-String
    Start-Process powershell.exe -ArgumentList "$SFC"
    $outputbox.AppendText("`n*** process Completed ***") | Out-String
}

# Offline CHKDSK scan
function MO_ScheduleOfflineCHKDSK_Click( $object ){
    $OLDCHKDSK = 'chkdsk /f c:'
    $NEWCHKDSK = 'chkdsk c: /OfflineScanAndFix'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Schedule Offline CHKDSK *****") | Out-String
    $outputbox.AppendText("`nOffline CHKDSK scan will now Launch in a new window") | Out-String
    $outputbox.AppendText("`n*** process Completed ***") | Out-String
    if ($OS -eq "XP") { Start-Process powershell.exe -ArgumentList "$OLDCHKDSK" }
    elseif ($OS -eq "7") { Start-Process powershell.exe -ArgumentList "$OLDCHKDSK" }
    elseif ($OS -eq "8") { Start-Process powershell.exe -ArgumentList "$NEWCHKDSK" }
    elseif ($OS -eq "8.1") { Start-Process powershell.exe -ArgumentList "$NEWCHKDSK" }
    elseif ($OS -eq "10") { Start-Process powershell.exe -ArgumentList "$NEWCHKDSK" }
    elseif ($OS -eq "2003") { Start-Process powershell.exe -ArgumentList "$OLDCHKDSK" }
    elseif ($OS -eq "2008") { Start-Process powershell.exe -ArgumentList "$OLDCHKDSK" }
    elseif ($OS -eq "2012") { Start-Process powershell.exe -ArgumentList "$NEWCHKDSK" }
    elseif ($OS -eq "2016") { Start-Process powershell.exe -ArgumentList "$NEWCHKDSK" }
}

# Reset Network Adapter
function MO_ResetNetworkAdapter_Click($object)
{
    $Ip1 = ipconfig / release | Out-String
    $Ip2 = ipconfig / renew | Out-String
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Reset Network Adapter *****") | Out-String
    $Outputbox.AppendText($Ip1)
    $Outputbox.AppendText($Ip2) 
    $outputbox.AppendText("`n*** process Completed ***") | Out-String
}

# Automatic Data Collection - Non Domain Controller Server
function ADC_NonDomainControllerServer_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Automatic Data Collection for Non Domain Controller Server is running, Please wait. *****") | Out-String
                                                                                 
    # List Systeminfo
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Systeminfo, details will be saved to file ") | Out-String
    Start-Process powershell.exe -windowstyle hidden -ArgumentList "systeminfo | Out-File $PCDPath'System Info.txt'"
                    
    # List Server Roles
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing Installed server roles, Results saved to file ") | Out-String
    Import-Module servermanager ; Get-WindowsFeature | Out-File $PCDPath'Server Roles.txt'
                                                
    # List FSMO roles
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing FSMO role assignments, Results saved to file ") | Out-String
    netdom query fsmo | Out-File $PCDPath'FSMO Results.txt'
                                        
    # Capture Applied GPO report
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Applied group Policy Objects, report will be saved to file ") | Out-String
    gpresult /h $PCDPath'GPResults.html'
                                
    # Export Error & Warning events Logs
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Event logs, results will be saved to file ") | Out-String
    wevtutil epl Application ï¿½/q:*[System[(Level=1 or Level=2 or Level=3)]]� $PCDPath'Application Events.evtx'
    wevtutil epl System ï¿½/q:*[System[(Level=1 or Level=2 or Level=3)]]� $PCDPath'System Events.evtx'
    $outputbox.AppendText("`nWarning, Error & Critical events have been exported ") | Out-String
                                                    
    # Capture IP settings to file
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing IP settings, Capture complete & saved to file ") | Out-String
    ipconfig /all | Out-File $PCDPath'IP Configuration.txt'
                                
    # List Mapped Drives
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing mapped network drives, details will be saved to file ") | Out-String
    Get-WmiObject -Class Win32_MappedLogicalDisk | Select-Object Name, ProviderName | Out-File $PCDPath'Mapped Network Drives.txt'    
                                  
    # List Domain Controllers
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for Domain controllers, details will be saved to file ") | Out-String
    $DOMAIN = (Get-WmiObject Win32_ComputerSystem).Domain
    nltest /dclist:$DOMAIN | Out-File $PCDPath'Domain Controller List.txt'
                                
    # List Scheduled Tasks
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for Scheduled Tasks, details will be saved to file ") | Out-String
    $schedule = New-Object -com("Schedule.Service")
    $schedule.connect() 
    $tasks = $schedule.getfolder("\").gettasks(0)
    $tasks | Format-Table Name, LastRunTime -AutoSize | Out-File $PCDPath'Scheduled Tasks.txt'
    if ($tasks.count -eq 0) { Write-Host ï¿½Schedule is Empty� | Out-File $PCDPath'Scheduled Tasks.txt' -append }
                                
    # List current w32tm time setting
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing time settings, details will be saved to file") | Out-String
    w32tm /query /status | Out-File $PCDPath'Time Settings.txt'

    # Run BPA scans
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nRunning BPA scans, results will be saved to file ") | Out-String 
    
    Import-Module ServerManager 

    $ModelsToRun = @() 
 
    if ((Get-WindowsFeature Application-Server).Installed) { 
    $ModelsToRun += "Microsoft/Windows/ApplicationServer" 
    } 
 
    if ((Get-WindowsFeature AD-Certificate).Installed) { 
    $ModelsToRun += "Microsoft/Windows/CertificateServices" 
    } 
 
    if ((Get-WindowsFeature DHCP).Installed) { 
    $ModelsToRun += "Microsoft/Windows/DHCP" 
    } 
 
    if ((Get-WindowsFeature AD-Domain-Services).Installed) { 
    $ModelsToRun += "Microsoft/Windows/DirectoryServices" 
    } 
 
    if ((Get-WindowsFeature DNS).Installed) { 
    $ModelsToRun += "Microsoft/Windows/DNSServer" 
    } 
 
    if ((Get-WindowsFeature File-Services).Installed) { 
    $ModelsToRun += "Microsoft/Windows/FileServices" 
    } 
 
    if ((Get-WindowsFeature Hyper-V).Installed) { 
    $ModelsToRun += "Microsoft/Windows/Hyper-V" 
    } 
 
    if ((Get-WindowsFeature NPAS).Installed) { 
    $ModelsToRun += "Microsoft/Windows/NPAS" 
    } 
 
    if ((Get-WindowsFeature Remote-Desktop-Services).Installed) { 
    $ModelsToRun += "Microsoft/Windows/TerminalServices" 
    } 
 
    if ((Get-WindowsFeature Web-Server).Installed) { 
    $ModelsToRun += "Microsoft/Windows/WebServer" 
    } 
 
    if ((Get-WindowsFeature OOB-WSUS).Installed) { 
    $ModelsToRun += "Microsoft/Windows/WSUS" 
    } 
 
    foreach ($BestPracticesModelId in $ModelsToRun) { 
 
    #Path-variables
    $BPAName = $BestPracticesModelId.Replace("Microsoft/Windows/","")
    $HTMLPath = "$Computername $BPAName $date"

    #HTML-header
    $Head = "
    <title>BPA Report for $BestPracticesModelId on $Computername</title>
    <style type='text/css'>
    table { border-collapse: collapse; width: 700px }
    body { font-family: Arial }
    td, th { border-width: 2px; border-style: solid; text-align: left;
    padding: 2px 4px; border-color: black }
    th { background-color: grey }
    td.Red { color: Red }
    </style>"
  
  
    Import-Module BestPractices 
    Invoke-BpaModel -BestPracticesModelId $BestPracticesModelId | Out-Null 
    $BPAResults = Get-BpaResult -BestPracticesModelId $BestPracticesModelId | Where-Object {$_.Severity -eq "Error" -or $_.Severity -eq ï¿½Warning� } 
    $BPAResults | ConvertTo-Html -Property Severity,Category,Title,Problem,Impact,Resolution,help -Title "BPA Report for $BestPracticesModelId on $Computername" -Body "BPA Report for $BestPracticesModelId on server $Computername <HR>" -Head $head | Out-File "$PCDPath $HTMLPath.html"
    }    
    
    # New Function here
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
    
    # End of Automatic Data Collection - Non Domain Controller Server
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Automatic Data Collection for Non Domain Controller Server - process Completed ***") | Out-String
    $outputbox.AppendText("`n") | Out-String
}

# Automatic Data Collection - Domain Controller Server
function ADC_DomainController_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Automatic Data Collection for Domain Controller Server is running, Please wait. *****") | Out-String
                                
    # Run DCDIAG
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming DCDIAG scan, Results will be saved to file ") | Out-String
    Start-Process powershell.exe -windowstyle hidden -ArgumentList "DCDIAG.exe /C /V | Out-File $PCDPath'DCDIAG Results.txt'"
                             
    # List Systeminfo
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Systeminfo, details will be saved to file ") | Out-String
    Start-Process powershell.exe -windowstyle hidden -ArgumentList "systeminfo | Out-File $PCDPath'System Info.txt'"
        
    # List Server Roles
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing Installed server roles, Results saved to file ") | Out-String
    Import-Module servermanager ; Get-WindowsFeature | Out-File $PCDPath'Server Roles.txt'
                                    
    # List FSMO roles
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing FSMO role assignments, Results saved to file ") | Out-String
    netdom query fsmo | Out-File $PCDPath'FSMO Results.txt'
                                
    # Capture Applied GPO report
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Applied group Policy Objects, report will be saved to file ") | Out-String
    gpresult /h $PCDPath'GPResults.html'
                        
    # Export Error & Warning events Logs
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Event logs, results will be saved to file ") | Out-String
    wevtutil epl Application ï¿½/q:*[System[(Level=1 or Level=2 or Level=3)]]� $PCDPath'Application Events.evtx'
    wevtutil epl System ï¿½/q:*[System[(Level=1 or Level=2 or Level=3)]]� $PCDPath'System Events.evtx'
    $outputbox.AppendText("`nWarning, Error & Critical events have been exported ") | Out-String
                                            
    # Capture IP settings to file
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing IP settings, Capture complete & saved to file ") | Out-String
    ipconfig /all | Out-File $PCDPath'IP Configuration.txt'
                        
    # List Mapped Drives
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing mapped network drives, details will be saved to file ") | Out-String
    Get-WmiObject -Class Win32_MappedLogicalDisk | Select-Object Name, ProviderName | Out-File $PCDPath'Mapped Network Drives.txt'    
                          
    # List Domain Controllers
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for Domain controllers, details will be saved to file ") | Out-String
    $DOMAIN = (Get-WmiObject Win32_ComputerSystem).Domain
    nltest /dclist:$DOMAIN | Out-File $PCDPath'Domain Controller List.txt'
                        
    # List Scheduled Tasks
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for Scheduled Tasks, details will be saved to file ") | Out-String
    $schedule = New-Object -com("Schedule.Service")
    $schedule.connect() 
    $tasks = $schedule.getfolder("\").gettasks(0)
    $tasks | Format-Table Name, LastRunTime -AutoSize | Out-File "c:\PCDiag\$Dt\Scheduled Tasks.txt"
    if ($tasks.count -eq 0) { Write-Host ï¿½Schedule is Empty� | Out-File $PCDPath'Scheduled Tasks.txt' -append }
                        
    # List current w32tm time setting
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing time settings, details will be saved to file") | Out-String
    w32tm /query /status | Out-File $PCDPath'Time Settings.txt'

    # Run BPA scans
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nRunning BPA scans, results will be saved to file ") | Out-String 
    
    Import-Module ServerManager 

    $ModelsToRun = @() 
 
    if ((Get-WindowsFeature Application-Server).Installed) { 
    $ModelsToRun += "Microsoft/Windows/ApplicationServer" 
    } 
 
    if ((Get-WindowsFeature AD-Certificate).Installed) { 
    $ModelsToRun += "Microsoft/Windows/CertificateServices" 
    } 
 
    if ((Get-WindowsFeature DHCP).Installed) { 
    $ModelsToRun += "Microsoft/Windows/DHCP" 
    } 
 
    if ((Get-WindowsFeature AD-Domain-Services).Installed) { 
    $ModelsToRun += "Microsoft/Windows/DirectoryServices" 
    } 
 
    if ((Get-WindowsFeature DNS).Installed) { 
    $ModelsToRun += "Microsoft/Windows/DNSServer" 
    } 
 
    if ((Get-WindowsFeature File-Services).Installed) { 
    $ModelsToRun += "Microsoft/Windows/FileServices" 
    } 
 
    if ((Get-WindowsFeature Hyper-V).Installed) { 
    $ModelsToRun += "Microsoft/Windows/Hyper-V" 
    } 
 
    if ((Get-WindowsFeature NPAS).Installed) { 
    $ModelsToRun += "Microsoft/Windows/NPAS" 
    } 
 
    if ((Get-WindowsFeature Remote-Desktop-Services).Installed) { 
    $ModelsToRun += "Microsoft/Windows/TerminalServices" 
    } 
 
    if ((Get-WindowsFeature Web-Server).Installed) { 
    $ModelsToRun += "Microsoft/Windows/WebServer" 
    } 
 
    if ((Get-WindowsFeature OOB-WSUS).Installed) { 
    $ModelsToRun += "Microsoft/Windows/WSUS" 
    } 
 
    foreach ($BestPracticesModelId in $ModelsToRun) { 
 
    #Path-variables
    $BPAName = $BestPracticesModelId.Replace("Microsoft/Windows/","")
    $HTMLPath = "$Computername $BPAName $date"

    #HTML-header
    $Head = "
    <title>BPA Report for $BestPracticesModelId on $Computername</title>
    <style type='text/css'>
    table { border-collapse: collapse; width: 700px }
    body { font-family: Arial }
    td, th { border-width: 2px; border-style: solid; text-align: left;
    padding: 2px 4px; border-color: black }
    th { background-color: grey }
    td.Red { color: Red }
    </style>"
  
  
    Import-Module BestPractices 
    Invoke-BpaModel -BestPracticesModelId $BestPracticesModelId | Out-Null 
    $BPAResults = Get-BpaResult -BestPracticesModelId $BestPracticesModelId | Where-Object {$_.Severity -eq "Error" -or $_.Severity -eq ï¿½Warning� } 
    $BPAResults | ConvertTo-Html -Property Severity,Category,Title,Problem,Impact,Resolution,help -Title "BPA Report for $BestPracticesModelId on $Computername" -Body "BPA Report for $BestPracticesModelId on server $Computername <HR>" -Head $head | Out-File "$PCDPath $HTMLPath.html"
    }
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
    
    # End of Automatic Data Collection - Domain Controller Server
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Automatic Data Collection for Domain Controller Server - process Completed ***") | Out-String
    $outputbox.AppendText("`n") | Out-String
}

# Automatic Data Collection - Workstation
function ADC_Workstation_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Automatic Data Collection for Workstation is running, Please wait. *****") | Out-String
                                            
    # List Systeminfo
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Systeminfo, details will be saved to file ") | Out-String    
    Start-Process powershell.exe -windowstyle hidden -ArgumentList "systeminfo | Out-File $PCDPath'System Info.txt'"
                                
    # Capture Applied GPO report
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Applied group Policy Objects, report will be saved to file ") | Out-String
    gpresult /h $PCDPath'GPResults.html'
                                        
    # Export Error & Warning events Logs
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Event logs, results will be saved to file ") | Out-String
    wevtutil epl Application ï¿½/q:*[System[(Level=1 or Level=2 or Level=3)]]� $PCDPath'Application Events.evtx'
    wevtutil epl System ï¿½/q:*[System[(Level=1 or Level=2 or Level=3)]]� $PCDPath'System Events.evtx'
    $outputbox.AppendText("`nWarning, Error & Critical events have been exported ") | Out-String
                                                        
    #Capture IP settings to file
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing IP settings, Capture complete & saved to file ") | Out-String
    ipconfig /all | Out-File $PCDPath'IP Configuration.txt'
                                        
    # List Mapped Drives
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing mapped network drives, details will be saved to file ") | Out-String
    Get-WmiObject -Class Win32_MappedLogicalDisk | Select-Object Name, ProviderName | Out-File $PCDPath'Mapped Network Drives.txt'    
                                          
    # List Domain Controllers'
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for Domain controllers, details will be saved to file ") | Out-String
    $DOMAIN = (Get-WmiObject Win32_ComputerSystem).Domain
    nltest.exe /dclist:$DOMAIN | Out-File $PCDPath'Domain Controller List.txt'
                    
    # List Scheduled Tasks
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for Scheduled Tasks, details will be saved to file ") | Out-String
    $schedule = New-Object -com("Schedule.Service")
    $schedule.connect() 
    $tasks = $schedule.getfolder("\").gettasks(0)
    $tasks | Format-Table Name, LastRunTime -AutoSize | Out-File $PCDPath'Scheduled Tasks.txt'
    if ($tasks.count -eq 0) { Write-Host ï¿½Schedule is Empty� | Out-File $PCDPath'Scheduled Tasks.txt' -append }
                                        
    # List current w32tm time setting
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing time settings, details will be saved to file ") | Out-String
    w32tm /query /status | Out-File $PCDPath'Time Settings.txt'
                                        
    # New function here
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
                                        
    # End of Automatic Data Collection - Workstation
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Automatic Data Collection for Workstation - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function AD_ListComputersLastLogonDate_Click($object){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Last Logon Date for Active Directory computers, details will be saved to file ") | Out-String
    Get-ADComputer -filter * -Properties * |Sort-Object lastlogondate -descending | ft name,lastlogondate -Autosize | Out-File $PCDPath'AD_Lastlogon_Computers.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Reviewing Last Logon Date for Active Directory computers - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String

    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function AD_ListComputers_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Active Directory computers, Results saved to file") | Out-String
    Get-ADComputer -filter * -Property * | Sort-Object | Format-Table Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion -Wrap ï¿½Auto | Out-File $PCDPath'AD Computers.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Reviewing Active Directory computers - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function AD_ListUsers_Click($object){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing Active Directory Users, Results saved to file") | Out-String
    Get-ADUser -filter * | Sort-Object | Out-File $PCDPath'AD Users.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Reviewing Active Directory Users - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function DO_ListAllGPOProperties_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing all GPO's and generating report, Results saved to file") | Out-String
   Get-GPO -all | Select-Object -Property DisplayName,ID,gpostatus |Sort-Object Displayname | Format-Table |Out-File $PCDPath'GPO Properties.txt'    
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Reviewing all GPO's and generating report - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
            
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function DO_ExportAllGPOSettings_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nReviewing all GPO's and generating report, Results saved to file") | Out-String
    Get-GPOReport -All -ReportType HTML -Path c:\PCDiag\$Dt\All_GPO_settings.html
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Reviewing all GPO's and generating report - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function DO_ListActiveCertificateAuthority_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nSearching for Active Certificate Authority, Results saved to file") | Out-String
    certutil -config --ping | Out-File $PCDPath'Certificate Authority.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Searching for Active Certificate Authority - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function OE_DisableClutterAllUsers_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nDisabling Clutter for All Users") | Out-String
    Connect-Msolservice -credential $0365UserCredential
    Get-Mailbox | set-Clutter -Enable $false
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Disabling Clutter for All Users - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function OE_O365Report_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nRunning O365 report, Results saved to file") | Out-String     
    Connect-MsolService -Credential $O365UserCredential
    $O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $O365UserCredential -Authentication Basic -AllowRedirection
    Import-PSSession $O365Session
    $Report = @( )
    $Mailboxes = Get-Mailbox -ResultSize Unlimited | where { $_.RecipientTypeDetails -ne "DiscoveryMailbox" }
    $MSOLDomain = Get-MsolDomain | where { $_.Authentication -eq "Managed" -and $_.IsDefault -eq "True" }
    $MSOLPasswordPolicy = Get-MsolPasswordPolicy -DomainName $MSOLDomain.name
    $MSOLPasswordPolicy = $MSOLPasswordPolicy.ValidityPeriod.ToString()
    foreach ($mailbox in $Mailboxes)
    {
    $DaysToExpiry = @( )
    $DisplayName = $mailbox.DisplayName
    $UserPrincipalName = $mailbox.UserPrincipalName
    $UserDomain = $UserPrincipalName.Split('@')[1]
    $Alias = $mailbox.alias
    $MailboxStat = Get-MailboxStatistics $UserPrincipalName
    $LastLogonTime = $MailboxStat.LastLogonTime 
    $TotalItemSize = $MailboxStat | select @{name = "TotalItemSize"; expression={[math]::Round(($_.TotalItemSize.ToString().Split("(")[1].Split(" ")[0].Replace(",", "")/1MB),2)}}
    $TotalItemSize = $TotalItemSize.TotalItemSize
    $RecipientTypeDetails = $mailbox.RecipientTypeDetails
    $MSOLUSER = Get-MsolUser -UserPrincipalName $UserPrincipalName
    if ($UserDomain -eq $MSOLDomain.name) {$DaysToExpiry = $MSOLUSER | select @{ Name = "DaysToExpiry" ; Expression = {( New-TimeSpan -start(Get-Date) -end($_.LastPasswordChangeTimestamp + $MSOLPasswordPolicy)).Days}} ; $DaysToExpiry = $DaysToExpiry.DaysToExpiry}
    $Information = $MSOLUSER | select FirstName, LastName, @{Name= 'DisplayName'; Expression={[String]::join(";", $DisplayName)}}, @{Name= 'Alias' ; Expression={[String]::join(";", $Alias)}}, @{Name= 'UserPrincipalName'; Expression={[String]::join(";", $UserPrincipalName)}}, Office, Department, @{Name= 'TotalItemSize (MB)'; Expression={[String]::join(";", $TotalItemSize)}}, @{Name= 'LastLogonTime'; Expression={[String]::join(";", $LastLogonTime)}}, LastPasswordChangeTimestamp, @{Name= "PasswordExpirationIn (Days)"; Expression={[String]::join(";", $DaysToExpiry)}}, @{Name= 'RecipientTypeDetails'; Expression={[String]::join(";", $RecipientTypeDetails)}}, islicensed, @{Name= "Licenses"; Expression={$_.Licenses.AccountSkuId}} 
    $Report = $Report + $Information
    }  
    $Report | Export-Csv $PCDPath'O365Report.csv'
    Get-PSSession | Remove-PSSession
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Running O365 report - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function OE_ListAssignedLicenses_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nCapturing assigned license information, Results saved to file") | Out-String
    Connect-Msolservice -credential $O365UserCredential
    Get-MSOLUser -all | Where-Object { $_.isLicensed -eq "FALSE" } | select userprincipalname, DisplayName | Sort-Object | Out-File $PCDPath'Exchange Assignedlicense.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Capturing assigned license information - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function OE_ConnecttoO365_Click($object){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nConnecting to O365, Enter O365 Login Credentials in the Windows security prompt") | Out-String
    $O365UserCredential = Get-Credential
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** PCDiag is now connected to O365, you can now execute PCDiag O365 functions ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function LE_ListAllSMTP2016_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for all SMTP email addresses, Results saved to file") | Out-String
    Get-Recipient | select Name -ExpandProperty EmailAddresses | select Name, SmtpAddress | Out-File $PCDPath'All SMTP Email Addresses.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Performing query for all SMTP email addresses - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function LE_ConnectExchange2016_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nConnecting to Local 2016 Exchange, Enter authorized administrative User Credentials in the Windows security prompt") | Out-String
    $Domain = ï¿½ LDAP:// ï¿½ + ([ADSI] ï¿½ï¿½ ).distinguishedName
    $domsplit = $domain.split("=" + ",")
    $curdom = $domsplit[1]
    $domuser = Read-Host "`n`tEnter authorized administrator User Name"
    $dompassword = Read-Host "`n`tEnter Password" | ConvertTo-SecureString -AsPlainText -Force
    $Exch2016creds = $curdom + "\" + $domuser
    $cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $Exch2016creds, $dompassword
    $domainforest = get-adforest | select-ExpandProperty Name 
    $servername = Read-Host "`n`tEnter name of Exchange server"
    $exch2016server = $servername + "." + $domainforest
    $ex2016Session = New-PSSession ï¿½ ConfigurationName Microsoft.Exchange ï¿½ ConnectionUri "http://$exch2016server/PowerShell" -Credential $cred ï¿½ Authentication Kerberos
    Import-PSSession $ex2016Session
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** PCDiag is now connected to Local Exchange 2016, you can now execute PCDiag Local Exchange 2016 functions ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function LE_ListAllSMTP2013_Click( $object ){  
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for all SMTP email addresses, Results saved to file") | Out-String
    Get-Recipient | select Name -ExpandProperty EmailAddresses | select Name, SmtpAddress | Out-File $PCDPath'All SMTP Email Addresses.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Performing query for all SMTP email addresses - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function LE_ConnectExchange2013_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nConnecting to Local 2013 Exchange, Enter authorized administrative User Credentials in the Windows security prompt") | Out-String
    $Domain = ï¿½ LDAP:/ / ï¿½ + ([ADSI] ï¿½ï¿½ ).distinguishedName
    $domsplit = $domain.split("=" + ",")
    $curdom = $domsplit[1]
    $domuser = Read-Host "`n`tEnter authorized administrator User Name"
    $dompassword = Read-Host "`n`tEnter Password" | ConvertTo-SecureString -AsPlainText -Force
    $Exch2013creds = $curdom + "\" + $domuser
    $cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $Exch2013creds, $dompassword
    $domainforest = get-adforest | select-ExpandProperty Name 
    $servername = Read-Host "`n`tEnter name of Exchange server"
    $exch2013server = $servername + "." + $domainforest
    $ex2013Session = New-PSSession ï¿½ ConfigurationName Microsoft.Exchange ï¿½ ConnectionUri "http://$exch2013server/PowerShell" -Credential $cred ï¿½ Authentication Kerberos
    Import-PSSession $ex2013Session
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** PCDiag is now connected to Local Exchange 2013, you can now execute PCDiag Local Exchange 2013 functions ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function LE_ListAllSMTP2010_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for all SMTP email addresses, Results saved to file") | Out-String
    Get-Recipient | select Name -ExpandProperty EmailAddresses | select Name, SmtpAddress | Out-File $PCDPath'All SMTP Email Addresses.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Performing query for all SMTP email addresses - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function LE_ConnectExchange2010_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nConnecting to Local 2010 Exchange, Enter authorized administrative User Credentials in the Windows security prompt") | Out-String
    $Domain = ï¿½ LDAP:/ / ï¿½ + ([ADSI] ï¿½ï¿½ ).distinguishedName
    $domsplit = $domain.split("=" + ",")
    $curdom = $domsplit[1]
    $domuser = Read-Host "`n`tEnter authorized administrator User Name"
    $dompassword = Read-Host "`n`tEnter Password" | ConvertTo-SecureString -AsPlainText -Force
    $Exch2010creds = $curdom + "\" + $domuser
    $cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $Exch2010creds, $dompassword
    $domainforest = get-adforest | select-ExpandProperty Name 
    $servername = Read-Host "`n`tEnter name of Exchange server"
    $exch2010server = $servername + "." + $domainforest
    $ex2010Session = New-PSSession ï¿½ ConfigurationName Microsoft.Exchange ï¿½ ConnectionUri "http://$exch2010server/PowerShell" -Credential $cred ï¿½ Authentication Kerberos
    Import-PSSession $ex2010Session
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** PCDiag is now connected to Local Exchange 2010, you can now execute PCDiag Local Exchange 2010 functions ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function LE_ListAllSMTP2007_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nPerforming query for all SMTP email addresses, Results saved to file") | Out-String
    Get-Recipient | select Name -ExpandProperty EmailAddresses | select Name, SmtpAddress | Out-File $PCDPath'All SMTP Email Addresses.txt'
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** Performing query for all SMTP email addresses - process Completed ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
        
    # Update Checkedlistbox1
    $CheckedlistBox1.Items.Clear()  
    $CheckedListBox1.Items.AddRange([string[]] ( Get-ChildItem $PCDPath))
}

function LE_ConnectExchange2007_Click( $object ){
    sleep -Seconds 1
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nConnecting to Local 2007 Exchange, Enter authorized administrative User Credentials in the Windows security prompt") | Out-String
    Write-Host -ForegroundColor Yellow "`n`n`tEstablishing connection to local Exchange server"
    $Domain = ï¿½ LDAP:/ / ï¿½ + ([ADSI] ï¿½ï¿½ ).distinguishedName
    $domsplit = $domain.split("=" + ",")
    $curdom = $domsplit[1]
    $domuser = Read-Host "`n`tEnter authorized administrator User Name"
    $dompassword = Read-Host "`n`tEnter Password" | ConvertTo-SecureString -AsPlainText -Force
    $Exch2007creds = $curdom + "\" + $domuser
    $cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $Exch2007creds, $dompassword
    $domainforest = get-adforest | select-ExpandProperty Name 
    $servername = Read-Host "`n`tEnter name of Exchange server"
    $exch2007server = $servername + "." + $domainforest
    $Ex2007Session = New-PSSession ï¿½ ConfigurationName Microsoft.Exchange ï¿½ ConnectionUri "http://$exch2007server/PowerShell" -Credential $cred ï¿½ Authentication Kerberos
    Import-PSSession $Ex2007Session
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n*** PCDiag is now connected to Local Exchange 2007, you can now execute PCDiag Local Exchange 2007 functions ***") | Out-String
    $Outputbox.AppendText("`n") | Out-String
}

function FL_Zip_Selected_Click( $object ){

}

function FL_Open_Location_Click( $object ){
Start-Process explorer $PCDPath
}

function FL_Open_Selected_Click( $object ){

}

function TP_Windows_Update_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching WindowsUpdate Troubleshooting pack, a new window will open") | Out-String
    $TPWindowsUpdate = "Get-TroubleshootingPack C:\Windows\diagnostics\system\WindowsUpdate | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPWindowsUpdate
    $outputbox.AppendText("`n") | Out-String
}

function TP_Video_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Video Troubleshooting pack, a new window will open") | Out-String
    $TPVideo = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Video | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPVideo
    $outputbox.AppendText("`n") | Out-String
}

function TP_Usb_Core_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Usb Core Troubleshooting pack, a new window will open") | Out-String
    $TPUsbCore = "Get-TroubleshootingPack C:\Windows\diagnostics\system\UsbCore | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPUsbCore
    $outputbox.AppendText("`n") | Out-String
}

function TP_Search_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Search Troubleshooting pack, a new window will open") | Out-String
    $TPSearch = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Search | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPSearch
    $outputbox.AppendText("`n") | Out-String
}

function TP_Printer_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Printer Troubleshooting pack, a new window will open") | Out-String
    $TPPrinter = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Printer | Invoke-TroubleshootingPack" 
    sleep -Seconds 2   
    Start-Process powershell.exe -ArgumentList $TPPrinter
    $outputbox.AppendText("`n") | Out-String
}

function TP_Power_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Power Troubleshooting pack, a new window will open") | Out-String
    $TPPower = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Power | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPPower
    $outputbox.AppendText("`n") | Out-String
}

function TP_Performance_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Performance Troubleshooting pack, a new window will open") | Out-String
    $TPPerf = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Performance | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPPerf
    $outputbox.AppendText("`n") | Out-String
}

function TP_Performance_Counters_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Performance Counters Troubleshooting pack, a new window will open") | Out-String
    $TPPCW = "Get-TroubleshootingPack C:\Windows\diagnostics\system\PCW | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPPCW
    $outputbox.AppendText("`n") | Out-String
}

function TP_Networking_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching AERO Troubleshooting pack, a new window will open") | Out-String
    $outputbox.AppendText("`nPRESS ENTER at : to bring up menu") | Out-String
    $TPNetworking= "Get-TroubleshootingPack C:\Windows\diagnostics\system\Networking | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPNetworking
    $outputbox.AppendText("`n") | Out-String
}

function TP_Keyboard_Test_Click( $object ){    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching KeyboardTroubleshooting pack, a new window will open") | Out-String
    $TPKeyboard = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Keyboard | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPKeyboard
    $outputbox.AppendText("`n") | Out-String
}

function TP_IE_Security_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching IE Security Troubleshooting pack, a new window will open") | Out-String
    $TPIESec = "Get-TroubleshootingPack C:\Windows\diagnostics\system\IESecurity | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPIESec
    $outputbox.AppendText("`n") | Out-String
}

function TP_IE_Browse_Web_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching IE Browse Web Troubleshooting pack, a new window will open") | Out-String
    $TPIEWeb = "Get-TroubleshootingPack C:\Windows\diagnostics\system\IEBrowseWeb | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPIEWeb
    $outputbox.AppendText("`n") | Out-String
}

function TP_Device_Center_Test( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Device Center Troubleshooting pack, a new window will open") | Out-String
    $TPDevCenter = "Get-TroubleshootingPack C:\Windows\diagnostics\system\DeviceCenter | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPDevCenter
    $outputbox.AppendText("`n") | Out-String
}

function TP_Device_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Device Troubleshooting pack, a new window will open") | Out-String
    $TPDevice = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Device | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPDevice
    $outputbox.AppendText("`n") | Out-String

}

function TP_Blue_Screen_Test( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Blue Screen Troubleshooting pack, a new window will open") | Out-String
    $TPBluescreen = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Bluescreen | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPBluescreen
    $outputbox.AppendText("`n") | Out-String
}

function TP_Bits_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching BITS Troubleshooting pack, a new window will open") | Out-String
    $TPBITS = "Get-TroubleshootingPack C:\Windows\diagnostics\system\BITS | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPBITS
    $outputbox.AppendText("`n") | Out-String
}

function TP_Audio_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Audio Troubleshooting pack, a new window will open") | Out-String
    $TPAudio = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Audio | Invoke-TroubleshootingPack" 
    Start-Process powershell.exe -ArgumentList $TPAudio
    $outputbox.AppendText("`n") | Out-String
}

function TP_Apps_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching Apps Troubleshooting pack, a new window will open") | Out-String
    $TPApps = "Get-TroubleshootingPack C:\Windows\diagnostics\system\Apps | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPApps
    $outputbox.AppendText("`n") | Out-String
}

function TP_Aero_Test_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`nLaunching AERO Troubleshooting pack, a new window will open") | Out-String
    $TPAero = "Get-TroubleshootingPack C:\Windows\diagnostics\system\AERO | Invoke-TroubleshootingPack" 
    sleep -Seconds 2
    Start-Process powershell.exe -ArgumentList $TPAero
    $outputbox.AppendText("`n") | Out-String
}

function TroubleshootingPacksClick( $object ){
Import-Module troubleshootingpack
}

function PG_Find_Module_Click( $object ){

}

function PG_Install_Module_Click( $object ){

}

function PG_Install_PowerShellGet_Click( $object ){

}

function PG_Find_Script_Click( $object ){

}

function PG_Install_Script_Click( $object ){

}

function PG_Open_Powershell_Gallery_Website_Click( $object ){
Start-Process "https://www.powershellgallery.com/"
}

function AD_Tab_Click( $object ){

}

function O365_Tab_Click( $object ){

}

function ComputerMGMT_Click( $object ){
    Start-Process compmgmt.msc
}

function MMC_Click( $object ){
    Start-Process MMC
}

function Restart_Click( $object ){
$Restart_Computer = New-Object system.Windows.Forms.Form
$Restart_Computer.Text = "PCDiag - Restart Computer"
$Restart_Computer.TopMost = $true
$Restart_Computer.StartPosition = "CenterScreen" 
$Restart_Computer.Width = 336
$Restart_Computer.Height = 193
$Restart_Computer.Icon = ([System.Drawing.Icon](New-Object System.Drawing.Icon((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"AAABAAEAICAAAAAAIACxBAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAA"+
                                "AAFzUkdCAK7OHOkAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAERklEQVRY"+
                                "R+2WW09UVxTH+Qh8FB6atGki4zCABRxmgGDqm5qASStluCMXO1DEGWAcMU1an1Bb28QYC02aIEpH"+
                                "8VJF6hTQYlUYldvIiFMEuSku19qXOefMPlzaZ/7JyuFyzv6tvfZa/3MStrUtM+04FNhnqwxCxteh"+
                                "uBiDzzDkdctxRH8dxesoZDaOw+6jEadAGpVSfjea1/4eZOSeeAe5/lXI8S2Ds20RnK0L4Gh5Ddne"+
                                "f8HumQV7cwQXewFZTdOQ9c0kWzzD/YwlTbBd9Y9hV90/kF47AmmHH0Ba9TD+/BDsxyJugdRkKQ4k"+
                                "0YMK/PgylJzFBHTwbM8rXOQlwmdgd1MY4VMc3rAOvIbDU6sG2e92T9QlsJqo/LQwS+DEWgw+NvMe"+
                                "SL3Dq0Z4sx4+AZkNz3H3T83hhzmcH+8YbiSaJLCakot+7yAoh79F+Ao4fYsMLtU7tLIxnM67/gnC"+
                                "H5nCbRV/sqMSSKNs5QMhPTzHt4Tn/gZ+HVgVeK4rQ0tY+nXgRyT8IaTX/I3w+5BaPQSplX8h/B5g"+
                                "j1HvBARSE55/ImUcD3e0zoPDO4flXxF4rtYL1HAm8HoTeJWED7Aq4JpmDdjnpNIo8JY5PPMoln2W"+
                                "7Vyv452z/wmeUtbP+sLR9kYdQUvxdXe2N6rC8W8El+N2ZdDYE75fIqLpEF5nAq/U4NbS26xqDn80"+
                                "UWA1WUvvBOSsrweXsz70dFngudouhrWOR7gcNwav0OA7S25h80ZCAmkUZbxVo8n3jMPotLEnCvy0"+
                                "c23WZcenlGtwuuJYdwikJkvxjSQ6x82NZiJmND3BeYHm+u7CgAn8LljL7oC15A/Y6brBjiTHv6oa"+
                                "UErJbRftUoGbzPqX308pu3+9sAwZxT+bw0sJfhOwx1izOvwrqgFZy/o7GHgTuK/zJSwsrQksV2//"+
                                "KCQX/oglvrkh3PLVNdZPAmlUavVwSIHrjCbfOwG3RozdT7v2dFyDjwsuKkYTg2NSEp5cFKAXmpkB"+
                                "BRPJOuWsczhvOoIfOhWGcPStwHKNhGYgv+o8WFzXTWc9Bsf/Szgllte+phoQjomTyquMW+MknLs6"+
                                "J5CafvgtCB/t/wlsCDWH846nppNwCu6yoBqQrSLoJqgevqdlWpl1KvmBxi749ItuNusH2x/D2cth"+
                                "ONMzjTEFpy9NYkzA6e5xcH07jKXvQ/DVWAJZTVPYgKAaUFr1YCB+1uN3zhrt4Dl2ttJoNlNeLQfL"+
                                "yPbOmRsQOZgeTkZzqvuVWAZ4oxV2CpfTjGZ+8Z24w1xZrvMxODUivmVVA0qruc8MyMxoik7eA3t5"+
                                "FyS7+jhc90VD47a3KQiFxy5j9PBovsSioLkbPq/tgk8K8VmRAN2fexL2CawmHD9XZsO4Ydbl222j"+
                                "L5qNZl1C9UEbyveDakBYUjeVPB6uftHg2+1/winw/KMCaVR63QMnwSjD9QMT2mLQvfHPk7mZln9b"+
                                "20pISPgAxFQnFWFRF0cAAAAASUVORK5CYII=")),0,$$.Length)))))

$yes = New-Object system.windows.Forms.Button
$yes.Text = "Yes"
$yes.Width = 60
$yes.Height = 30
$yes.Add_Click({ Restart-Computer })
$yes.location = New-Object system.drawing.point(126,108)
$yes.Font = "Microsoft Sans Serif,10"
$Restart_Computer.controls.Add($yes)

$RCLabel1 = New-Object system.windows.Forms.Label
$RCLabel1.Text = "Warning"
$RCLabel1.AutoSize = $true
$RCLabel1.Width = 25
$RCLabel1.Height = 10
$RCLabel1.location = New-Object system.drawing.point(124,19)
$RCLabel1.Font = "Microsoft Sans Serif,10,style=Bold"
$Restart_Computer.controls.Add($RCLabel1)

$RCLabel2 = New-Object system.windows.Forms.Label
$RCLabel2.Text = "This process will reboot the computer."
$RCLabel2.AutoSize = $true
$RCLabel2.Width = 25
$RCLabel2.Height = 10
$RCLabel2.location = New-Object system.drawing.point(51,47)
$RCLabel2.Font = "Microsoft Sans Serif,10"
$Restart_Computer.controls.Add($RCLabel2)

$RCLabel3 = New-Object system.windows.Forms.Label
$RCLabel3.Text = "Do you wish to proceed?"
$RCLabel3.AutoSize = $true
$RCLabel3.Width = 25
$RCLabel3.Height = 10
$RCLabel3.location = New-Object system.drawing.point(81,74)
$RCLabel3.Font = "Microsoft Sans Serif,10"
$Restart_Computer.controls.Add($RCLabel3)

[void]$Restart_Computer.ShowDialog()
$Restart_Computer.Dispose()
}

function CMD_Click( $object ){
    Start-Process cmd
}

function ControlPanel_Click( $object ){
    Start-Process Control
}

function FileExplorer_Click( $object ){
    Start-Process explorer
}

function PS_Click( $object ){
    Start-Process powershell
}

function GPUpdate_Click( $object ){
    Start-Process gpupdate
}

function PingTest_Click( $object ){
$PingForm = New-Object System.Windows.Forms.Form    
$PingForm.Size = New-Object System.Drawing.Size(600,400)  
$PingForm.StartPosition = "CenterScreen" 
$PingForm.Text = "PCDiag - Ping Tool"
$PingForm.Icon = ([System.Drawing.Icon](New-Object System.Drawing.Icon((New-Object System.IO.MemoryStream(($$ = [System.Convert]::FromBase64String(
"AAABAAEAICAAAAAAIACxBAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAA"+
                                "AAFzUkdCAK7OHOkAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAERklEQVRY"+
                                "R+2WW09UVxTH+Qh8FB6atGki4zCABRxmgGDqm5qASStluCMXO1DEGWAcMU1an1Bb28QYC02aIEpH"+
                                "8VJF6hTQYlUYldvIiFMEuSku19qXOefMPlzaZ/7JyuFyzv6tvfZa/3MStrUtM+04FNhnqwxCxteh"+
                                "uBiDzzDkdctxRH8dxesoZDaOw+6jEadAGpVSfjea1/4eZOSeeAe5/lXI8S2Ds20RnK0L4Gh5Ddne"+
                                "f8HumQV7cwQXewFZTdOQ9c0kWzzD/YwlTbBd9Y9hV90/kF47AmmHH0Ba9TD+/BDsxyJugdRkKQ4k"+
                                "0YMK/PgylJzFBHTwbM8rXOQlwmdgd1MY4VMc3rAOvIbDU6sG2e92T9QlsJqo/LQwS+DEWgw+NvMe"+
                                "SL3Dq0Z4sx4+AZkNz3H3T83hhzmcH+8YbiSaJLCakot+7yAoh79F+Ao4fYsMLtU7tLIxnM67/gnC"+
                                "H5nCbRV/sqMSSKNs5QMhPTzHt4Tn/gZ+HVgVeK4rQ0tY+nXgRyT8IaTX/I3w+5BaPQSplX8h/B5g"+
                                "j1HvBARSE55/ImUcD3e0zoPDO4flXxF4rtYL1HAm8HoTeJWED7Aq4JpmDdjnpNIo8JY5PPMoln2W"+
                                "7Vyv452z/wmeUtbP+sLR9kYdQUvxdXe2N6rC8W8El+N2ZdDYE75fIqLpEF5nAq/U4NbS26xqDn80"+
                                "UWA1WUvvBOSsrweXsz70dFngudouhrWOR7gcNwav0OA7S25h80ZCAmkUZbxVo8n3jMPotLEnCvy0"+
                                "c23WZcenlGtwuuJYdwikJkvxjSQ6x82NZiJmND3BeYHm+u7CgAn8LljL7oC15A/Y6brBjiTHv6oa"+
                                "UErJbRftUoGbzPqX308pu3+9sAwZxT+bw0sJfhOwx1izOvwrqgFZy/o7GHgTuK/zJSwsrQksV2//"+
                                "KCQX/oglvrkh3PLVNdZPAmlUavVwSIHrjCbfOwG3RozdT7v2dFyDjwsuKkYTg2NSEp5cFKAXmpkB"+
                                "BRPJOuWsczhvOoIfOhWGcPStwHKNhGYgv+o8WFzXTWc9Bsf/Szgllte+phoQjomTyquMW+MknLs6"+
                                "J5CafvgtCB/t/wlsCDWH846nppNwCu6yoBqQrSLoJqgevqdlWpl1KvmBxi749ItuNusH2x/D2cth"+
                                "ONMzjTEFpy9NYkzA6e5xcH07jKXvQ/DVWAJZTVPYgKAaUFr1YCB+1uN3zhrt4Dl2ttJoNlNeLQfL"+
                                "yPbOmRsQOZgeTkZzqvuVWAZ4oxV2CpfTjGZ+8Z24w1xZrvMxODUivmVVA0qruc8MyMxoik7eA3t5"+
                                "FyS7+jhc90VD47a3KQiFxy5j9PBovsSioLkbPq/tgk8K8VmRAN2fexL2CawmHD9XZsO4Ydbl222j"+
                                "L5qNZl1C9UEbyveDakBYUjeVPB6uftHg2+1/winw/KMCaVR63QMnwSjD9QMT2mLQvfHPk7mZln9b"+
                                "20pISPgAxFQnFWFRF0cAAAAASUVORK5CYII=")),0,$$.Length)))))

function pingInfo {
$wks=$PingTarget.text;
$pingResult=ping $wks | fl | Out-String;
$PingOutputBox.text=$pingResult
} 

$PingTarget = New-Object System.Windows.Forms.TextBox 
$PingTarget.Location = New-Object System.Drawing.Size(20,50) 
$PingTarget.Size = New-Object System.Drawing.Size(150,20) 
$PingForm.Controls.Add($PingTarget) 

$PingOutputBox = New-Object System.Windows.Forms.TextBox 
$PingOutputBox.Location = New-Object System.Drawing.Size(10,150) 
$PingOutputBox.Size = New-Object System.Drawing.Size(565,200) 
$PingOutputBox.MultiLine = $True 
$PingOutputBox.ScrollBars = "Vertical" 
$PingForm.Controls.Add($PingOutputBox) 

$Button = New-Object System.Windows.Forms.Button 
$Button.Location = New-Object System.Drawing.Size(400,30) 
$Button.Size = New-Object System.Drawing.Size(110,80) 
$Button.Text = "Ping" 
$Button.Add_Click({pingInfo}) 
$PingForm.Controls.Add($Button) 

$PingForm.Add_Shown({$PingForm.Activate()})
[void] $PingForm.ShowDialog()

}

function RDP_Click( $object ){
    Start-Process mstsc
}

function Donate_Click( $object ){
    Start-Process "https://www.gofundme.com/pcdiag-donations"
}

function MainMenuLoad( $object ){

}

function MO_ResetWindowsUpdate_Click( $object ){
    $outputbox.AppendText("`n") | Out-String
    $outputbox.AppendText("`n***** Reseting Windows Update, Please wait *****") | Out-String
    $outputbox.AppendText("`n")
    Stop-Service wuauserv
    sleep -seconds 3
    Remove-Item c:\windows\softwaredistribution -Recurse -Force
    sleep -seconds 4
    Start-Service wuauserv
    $outputbox.AppendText("`n*** Windows Update Reset ***") | Out-String
}

function DO_ResetDomainGPOs_Click( $object ){

}

function Reset_Windows_Update_Click( $object ){

}

Main # This call must remain below all other event functions

#endregion