This PowerShell will help you find the optoins you're looking for:
Code:
gci 'HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerSettings' -Recurse |
? Property -contains 'Attributes' | gp |
select Attributes, PSCHildName, @{ N = 'Name' ; E = { $_.FriendlyName.Split(',')[-1] }} |out-gridview
An Attrbutes value of 1
hides the option, a value of 2
makes it visible.
And if you truly want to enable all, even those your system may not support, run this from an Admin PowerShell console:
***At Your Own RIsk ***
Code:
gci 'HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerSettings' -Recurse |
? Property -contains 'Attributes' |
Set-ItemProperty -Name Attributes -Value 2
Update: GridView as Interactive Control:
If you run the following code from an Admin PowerShell console ( Admin required to modify values under HKLM: \), the Gridview will allow you to select items to toggle their visibility.
Code:
$Title = 'Select option(s) to toggle visibility'
$PowerSettings = 'HKLM:\SYSTEM\CurrentControlSet\Control\Power\PowerSettings'
@( [PSCustomObject]@{
Attributes = 0
PSChildName = '{ -- No Changes -- }'
Name = ' "Safety" row to clear selection'
} ) +
@( Get-ChildItem $PowerSettings -Recurse | ? Property -contains 'Attributes' | Get-ItemProperty |
Select Attributes, PSCHildName,
@{ N = 'Name' ; E = { $_.FriendlyName.Split(',')[-1] }} ) | Sort PSChildName |
Out-GridView -Passthru -Title $Title | ForEach {
$Splat = @{
Path = Resolve-Path "$PowerSettings\*\$($_.PSChildName)"
Name = 'Attributes'
Value = -bNot $_.Attributes -bAnd 0x0000003
}
Set-ItemProperty @Splat -Confirm
}