PowerShell создать путь к реестру один лайнер?
Создание значения реестра, включая путь до него, а не ошибки, если путь уже существует, легко с помощью old-school reg.exe:
reg add HKCU\Software\Policies\Microsoft\Windows\EdgeUI /f /v DisableHelpSticker /t reg_sz /d 1
Это красиво и лаконично. Самый короткий способ, который я нашел в чистом PowerShell, - две строки или три, если вы не хотите повторять путь:
$regPath = 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI'
New-Item $regPath -Force | Out-Null
New-ItemProperty $regPath -Name DisableHelpSticker -Value 1 -Force | Out-Null
Есть ли более простой способ использования чистого PowerShell? И без добавления служебной функции.
Ответы
Ответ 1
Вы можете подключить строку создания к строке New-ItemProperty
следующим образом, но имейте в виду, что флаг -Force
на New-Item
удалит любое ранее существующее содержимое ключа:
New-Item 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI' -Force | New-ItemProperty -Name DisableHelpSticker -Value 1 -Force | Out-Null
Ответ 2
Другой способ упростить обработку реестра 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)
Ответ 3
Извините за мертвый поток, но почему бы просто не
New-ItemProperty -Path Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\EdgeUI -Name DisableHelpSticker -Value Contoso -Force | Out-Null
Я использую это для некоторых материалов SCCM и не перезаписывает существующие записи reg.