Search code examples
powershellregistry

How can I create a registry value and path leading to it in one line using PowerShell?


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.


Solution

  • 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)