我有一个注册条目 (.reg) 文件,我想将其转换为 PowerShell 脚本。
在路上,我遇到了这个值:hex:00
。
这是我要设置的注册表项和值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{042D8A51-5878-4000-9C10-C04AFF122A1F}"
“触发器”=hex:00
如何使用 Set-ItemPropery 设置此十六进制值?
最佳答案
当您使用Set-ItemProperty
时为了定位注册表路径,cmdlet支持名为-Type
的动态参数,该参数接受 Microsoft.Win32.RegistryValueKind
value,指定值的数据类型。
*.reg
文件中存在 hex:
意味着数据类型为二进制(原始字节);因此:
- 将
Binary
传递给-Type
- 将二进制值(数据)作为字节数组传递给
-Value
;产生等价的hex:00
- 即值为0x0
的单个字节 - 使用-Value 0x0
(传递多个 个字节,用,
分隔,例如:-Value 0x0, 0x1
):
Set-ItemProperty -Type Binary -Value 0x0 -Name Triggers -LiteralPath 'registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{042D8A51-5878-4000-9C10-C04AFF122A1F}'
另请注意注册表项路径的 registry::
前缀,这是将该路径标识为注册表路径(以上下文无关的方式)所必需的。
或者,将 registry::HKEY_LOCAL_MACHINE
替换为 HKLM:
,以使路径基于等效的 PowerShell-specific drive反而。 (另一个预定义的注册表驱动器是 HKCU:
,相当于 registry::HKEY_CURRENT_USER
; Get-PSDrive
-PSProviderregistry
显示所有注册表-基于驱动器)。
关于windows - 使用 PowerShell 设置十六进制注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70049129/