$ControlPanelApplets = [ordered]@{
    "Add a Device wizard"                      = "$env:windir\System32\DevicePairingWizard.exe"
    "Add Hardware wizard"                      = "$env:windir\System32\hdwwiz.exe"
    "Add a Printer wizard"                     = "rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter"
    "Administrative Tools"                     = "control.exe /name Microsoft.AdministrativeTools"
    "AutoPlay"                                 = "control.exe /name Microsoft.AutoPlay"
    "Backup and Restore"                       = "control.exe /name Microsoft.BackupAndRestoreCenter"
    "BitLocker Drive Encryption"               = "control.exe /name Microsoft.BitLockerDriveEncryption"
    "Color and Appearance"                     = "explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\pageColorization"
    "Color Management"                         = "control.exe /name Microsoft.ColorManagement"
    "Credential Manager"                       = "control.exe /name Microsoft.CredentialManager"
    "Date and Time"                            = "control.exe /name Microsoft.DateAndTime"
    "Default Programs"                         = "control.exe /name Microsoft.DefaultPrograms"
    "Desktop Background"                       = "explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\pageWallpaper"
    "Desktop Icon Settings"                    = "rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0"
    "Device Manager"                           = "control.exe /name Microsoft.DeviceManager"
    "Devices and Printers"                     = "control.exe /name Microsoft.DevicesAndPrinters"
    "Ease of Access Center"                    = "control.exe /name Microsoft.EaseOfAccessCenter"
    "File Explorer Options"                    = "control.exe /name Microsoft.FolderOptions"
    "File History"                             = "control.exe /name Microsoft.FileHistory"
    "Fonts"                                    = "control.exe /name Microsoft.Fonts"
    "Game Controllers"                         = "control.exe /name Microsoft.GameControllers"
    "Get Programs"                             = "control.exe /name Microsoft.GetPrograms"
    "HomeGroup"                                = "control.exe /name Microsoft.HomeGroup"
    "Indexing Options"                         = "control.exe /name Microsoft.IndexingOptions"
    "Infrared"                                 = "control.exe /name Microsoft.Infrared"
    "Internet Properties"                      = "control.exe /name Microsoft.InternetOptions"
    "iSCSI Initiator"                          = "control.exe /name Microsoft.iSCSIInitiator"
    "Keyboard"                                 = "control.exe /name Microsoft.Keyboard"
    "Language"                                 = "control.exe /name Microsoft.Language"
    "Mouse Properties"                         = "control.exe /name Microsoft.Mouse"
    "Network and Sharing Center"               = "control.exe /name Microsoft.NetworkAndSharingCenter"
    "Network Connections"                      = "control.exe ncpa.cpl"
    "Network Setup Wizard"                     = "control.exe netsetup.cpl"
    "Notification Area Icons"                  = "explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}"
    "ODBC Data Source Administrator"           = "control.exe odbccp32.cpl"
    "Offline Files"                            = "control.exe /name Microsoft.OfflineFiles"
    "Performance Options"                      = "$env:windir\system32\SystemPropertiesPerformance.exe"
    "Personalization"                          = "explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}"
    "Phone and Modem"                          = "control.exe /name Microsoft.PhoneAndModem"
    "Power Options"                            = "control.exe /name Microsoft.PowerOptions"
    "Presentation Settings"                    = "$env:windir\system32\PresentationSettings.exe"
    "Programs and Features"                    = "control.exe /name Microsoft.ProgramsAndFeatures"
    "Recovery"                                 = "control.exe /name Microsoft.Recovery"
    "Region"                                   = "control.exe /name Microsoft.RegionAndLanguage"
    "RemoteApp and Desktop Connections"        = "control.exe /name Microsoft.RemoteAppAndDesktopConnections"
    "Scanners and Cameras"                     = "control.exe /name Microsoft.ScannersAndCameras"
    "Screen Saver Settings"                    = "rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1"
    "Security and Maintenance"                 = "control.exe /name Microsoft.ActionCenter"
    "Set Associations"                         = "control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc"
    "Set Default Programs"                     = "control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram"
    "Set Program Access and Computer Defaults" = "rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3"
    "Sound"                                    = "control.exe /name Microsoft.Sound"
    "Speech Recognition"                       = "control.exe /name Microsoft.SpeechRecognition"
    "Storage Spaces"                           = "control.exe /name Microsoft.StorageSpaces"
    "Sync Center"                              = "control.exe /name Microsoft.SyncCenter"
    "System"                                   = "control.exe /name Microsoft.System"
    "System Icons"                             = "explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9} \SystemIcons,,0"
    "System Properties"                        = "$env:windir\System32\SystemPropertiesComputerName.exe"
    "Tablet PC Settings"                       = "control.exe /name Microsoft.TabletPCSettings"
    "Text to Speech"                           = "control.exe /name Microsoft.TextToSpeech"
    "User Accounts"                            = "netplwiz"
    "Windows Defender Antivirus"               = "$env:ProgramFiles\Windows Defender\MSASCui.exe"
    "Windows Defender Firewall"                = "control.exe /name Microsoft.WindowsFirewall"
    "Windows Features"                         = "$env:windir\System32\OptionalFeatures.exe"
    "Windows Mobility Center"                  = "control.exe /name Microsoft.MobilityCenter"
    "Windows To Go"                            = "$env:windir\System32\pwcreator.exe"
    "Work Folders"                             = "$env:windir\System32\WorkFolders.exe"
}

function Start-ControlPanelApplet {
    [CmdletBinding()]
    param
    (
        [string[]]
        $Name
    )

    foreach ($Applet in $Name) {
        cmd /c $ControlPanelApplets.$Applet
    }
}

Register-ArgumentCompleter -CommandName Start-ControlPanelApplet -ParameterName Name -ScriptBlock {
    param ($CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameter)

    $Keys = $ControlPanelApplets.Keys

    foreach ($Key in $Keys) {
        if ($Key -Match $WordToComplete) {
            [System.Management.Automation.CompletionResult]::new(
                "'$Key'",
                $Key,
                "ParameterValue",
                ($Key)
            )
        }
    }
}

Set-Alias -Name cpl -Value Start-ControlPanelApplet