web-dev-qa-db-ja.com

PowerShellを使用してレジストリ値とそれにつながるパスを1行で作成するにはどうすればよいですか?

古い学校のreg.exeを使用すると、それまでのパスを含むレジストリ値を作成し、パスが既に存在する場合はエラーになりません。

reg add HKCU\Software\Policies\Microsoft\Windows\EdgeUI /f /v DisableHelpSticker /t reg_sz /d 1

それはすてきで簡潔です。私が純粋なPowerShellでそれを行うために見つけた最短の方法は2行、またはパスを繰り返したくない場合は3行です:

$regPath = 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI'
New-Item $regPath -Force | Out-Null
New-ItemProperty $regPath -Name DisableHelpSticker -Value 1 -Force | Out-Null

純粋なPowerShellを使用する簡単な方法はありますか?そして、ユーティリティ機能を追加することなく。

17
Vimes

PSレジストリの処理を簡素化する別の方法は、.Net関数SetValue()を直接呼び出すことです。

[Microsoft.win32.registry]::SetValue("HKEY_CURRENT_USER\Software\Test", "Test-String", "Testing")
[Microsoft.win32.registry]::SetValue("HKEY_CURRENT_USER\Software\Test", "Test-DW", 0xff)
1
mschomm

デッドスレッドをrezして申し訳ありませんが、なぜ

New-ItemProperty -Path Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\EdgeUI -Name DisableHelpSticker -Value Contoso -Force | Out-Null

私はこれをいくつかのSCCMのものに使用していますが、既存のregエントリを上書きしません。

0
Benny