Usually, we open control panel items from the Control Panel. Sometimes it is required to open them through the commands or APIs and PowerShell provides useful commands to display the control panel items and allows to open them.
Note that, some control panel items will appear only when the right hardware is detected; with that, two systems may not have the same kind of control panel items.
Display control panel items
Get-ControlPanelItem
cmdlet is used to get the list of control panel items on the local computer. It will display the name, canonical name, category & description of each control panel item available on the system.
Canonical Names? Yes, canonical names are used to access the control panel items from the APIs or scripts and these names are always in English only. These names will not change depending on the language selected in the system.
The below command will display the control panel items.
PS C:\> Get-ControlPanelItem Name CanonicalName Category ---- ------------- -------- Security and Maintenance Microsoft.ActionCenter {System and Security} Administrative Tools Microsoft.AdministrativeTools {System and Security} AutoPlay Microsoft.AutoPlay {Hardware and Sound} ........ ........ ........ Work Folders Microsoft.WorkFolders {System and Security} Mail (Microsoft Outlook) {User Accounts}
We can get specific control panel items by using its’ parameters, -Name
or -CanonicalName
& -Category
. For example, the below command will display all control panel items with the name containing “Options”.
PS C:\> Get-ControlPanelItem -Name "*Options*"
And, the below command will display all the control panel items that are part of the given category.
PS C:\> Get-ControlPanelItem -Category "System and Security"
Note that, -Name
& -CanonicalName
parameters can’t be used together. Either you can use -Name
or -CanonicalName
at a time. Otherwise, you will see the below Error message;
PS C:\> Get-ControlPanelItem -Name "System" -CanonicalName "Microsoft.System"
Get-ControlPanelItem : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Get-ControlPanelItem -Name "System" -CanonicalName "Microsoft.System"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ControlPanelItem], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.GetControlPanelItemCommand
This command will throw the below error if the control panel item we requested is not available in the system.
PS C:\> Get-ControlPanelItem -Name "Analytics"
Get-ControlPanelItem : Cannot find any control panel item with the given name Analytics.
At line:1 char:1
+ Get-ControlPanelItem -Name "Analytics"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Analytics:String) [Get-ControlPanelItem], InvalidOperationException
+ FullyQualifiedErrorId : NoControlPanelItemFoundForGivenName,Microsoft.PowerShell.Commands.GetControlPanelItemCommand
Open control panel items
So far we have discussed the PowerShell command to display the control panel items. To open control panel items, PowerShell provides Show-ControlPanelItem
cmdlet. By default, it will ask for the name of the control panel item to open when no parameters are passed. For example, the below command will open the sound control panel when we enter the text Sound for the -Name
parameter.
PS C:\> Show-ControlPanelItem cmdlet Show-ControlPanelItem at command pipeline position 1 Supply values for the following parameters: Name[0]: Sound Name[1]: PS C:\>
We can also open a specific control panel item by entering its’ name or canonical name through the parameters -Name
or -CanonicalName
respectively. For example, the below commands will open the AutoPlay and Mouse control panel items respectively.
PS C:\> Show-ControlPanelItem -Name "AutoPlay" PS C:\> Show-ControlPanelItem -CanonicalName "Microsoft.Mouse"
As mentioned above, either you can use -Name
or -CanonicalName
parameter at a time; can not be used together.
We can also pass input to this command using the pipe symbol; the below command is an example that will open a control panel item “Network and Sharing Center”, and the name comes from Get-ControlPanelItem
.
PS C:\> Get-ControlPanelItem -Name "Network and Sharing Center" | Show-ControlPanelItem
[David]