windows - 使用 PowerShell 设置十六进制注册表值

标签 windows powershell registry

我有一个注册条目 (.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/

相关文章:

C++ Windows32 GDI 填充三角形

windows - OpenGL + GLEW + MinGW 应用程序链接问题

windows - 有没有办法检查 MS 安全中心的病毒防护状态?

powershell - 是否可以通过Powershell设置 'update' ADF管道属性

regex - -匹配成功但不更新 $matches

node.js - Powershell 检测何时添加或删除设备

c++ - 读取 Windows 注册表时顺序是否重要?

java - 如何从Windows服务器系统的注册表中获取java主目录

c# - 在 Windows 8 C# 中启动时运行应用程序

windows - 适用于 JavaScript 版本 2.1.30324.52 的适用于 Windows 库的 Visual Studio 扩展似乎停留在 "Configuring your system. This might take a while."