Ahu*_*Lee 3 windows windows-registry
我想添加一个扩展的注册表项,HKCR\Drive\shell\Cmder\command其值名为(Default).
如果我使用注册表编辑器,它会自动添加一个REG_SZ带有名称的字符串值类型Default。此后无法更改该值的类型或无法删除该值(以便用新值替换)。
reg add如果我在命令行或文件中使用,.reg它表示操作已成功完成,或者已成功添加键和值,但并未真正进行注册表更改。
为了确保不存在语法错误,这是来自docs.microsoft.com的示例,该示例应添加一个扩展的注册表项,HKLM\Software\MyCo其值名为、Path类型REG_EXPAND_SZ和数据%systemroot%:
reg add HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
Run Code Online (Sandbox Code Playgroud)
它成功完成,但注册表中的更改仍然没有进行。钥匙MyCo不在那里。
我的命令可能做错了什么吗reg add?是否有其他方法可以将REG_EXPAND_SZ带有名称的类型条目添加(Default)到注册表中?
更新:
Microsoft 示例实际上可以工作,但为了查看更改,您需要打开注册表编辑器的新实例(已运行的实例由于某种原因不会更新)
作为记录,创建(Default)type 值的其他方法REG_EXPAND_SZ:
如果您更喜欢直接在 中创建键/值RegEdit,这使得嵌入引号和斜杠的字符串值更容易编写,那么您可以让其Regedit完成转义特殊字符和编码 unicode 字符串的工作。要创建(Default)类型的值REG_EXPAND_SZ:
temptype 的值。REG_EXPAND_SZ(Default)"temp"到剪贴板,然后替换为@. 然后,添加一个新行,然后"temp"粘贴=-。注册表导出:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\DummySoftware\Path]
"temp"=hex(2):25,00,55,00,73,00,65,00,72,00,50,00,72,00,6f,00,66,00,69,00,6c,\
00,65,00,25,00,5c,00,44,00,75,00,6d,00,6d,00,79,00,53,00,6f,00,66,00,74,00,\
57,00,61,00,72,00,65,00,00,00
Run Code Online (Sandbox Code Playgroud)
编辑后:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\DummySoftware\Path]
@=hex(2):25,00,55,00,73,00,65,00,72,00,50,00,72,00,6f,00,66,00,69,00,6c,\
00,65,00,25,00,5c,00,44,00,75,00,6d,00,6d,00,79,00,53,00,6f,00,66,00,74,00,\
57,00,61,00,72,00,65,00,00,00
"temp"=-
Run Code Online (Sandbox Code Playgroud)
PowerShell 也是一种选择。
$Splat = @{
'Path' = 'HKCR:\SOFTWARE\DummySoftware2\Path'
'Value = '%UserProfile%\DummySoftware2'
'ItemType' = 'ExpandString'
'Force' = $False
}
New-Item $Splat
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4381 次 |
| 最近记录: |