Creating a registry value, including the path up to it, and not erroring if the path already exists is easy using old-school reg.exe:
reg add HKCU\Software\Policies\Microsoft\Windows\EdgeUI /f /v DisableHelpSticker /t reg_sz /d 1
That's nice and concise. The shortest way I found to do it in pure PowerShell is two lines, or three if you don't want to repeat the path:
$regPath = 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI' New-Item $regPath -Force | Out-Null New-ItemProperty $regPath -Name DisableHelpSticker -Value 1 -Force | Out-Null
Is there an easier way using pure PowerShell? And without adding a utility function.
If you're creating a new registry value, right-click or tap-and-hold on the key it should exist within and choose New, followed by the type of value you want to create. Name the value, press Enter to confirm, and then open the newly created value and set the Value data it should have.
You can also use the New-ItemProperty cmdlet to create the registry entry and its value and then use Set-ItemProperty to change the value. For more information about the HKLM: drive, type Get-Help Get-PSDrive . For more information about how to use PowerShell to manage the registry, type Get-Help Registry .
You can pipe the creation line to the New-ItemProperty
line as follows, but be aware that the -Force
flag on New-Item
will delete any pre-existing contents of the key:
New-Item 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI' -Force | New-ItemProperty -Name DisableHelpSticker -Value 1 -Force | Out-Null
Another way of simplifying PS registry handling is calling the .Net function SetValue() directly:
[microsoft.win32.registry]::SetValue("HKEY_CURRENT_USER\Software\Test", "Test-String", "Testing") [microsoft.win32.registry]::SetValue("HKEY_CURRENT_USER\Software\Test", "Test-DW", 0xff)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With