[英]How do I change a REG_DWORD value's base from Hexadecimal to Decimal via PowerShell cmdlets?
对于 Microsoft 提供的私人预览工具,需要将注册表值设置为 Type REG_DWORD 值 46,然后将 Base 从十六进制更改为十进制。 这是我所指的文档的一部分:
我正在创建一个主动修复脚本,以推送到一组需要此 Reg 密钥/项目以使预览工具工作的机器。
$regkeyPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
$regEntry = "WUfBDF"
$desiredValue = 46
function createRegEntry($path, $entry, $value){
write-output "Remediating registry entry."
if(test-path -Path $path){
write-output "$path exists. Setting $entry"
Set-ItemProperty -Path $path -Name $entry -Value $value -Type DWord -force | out-null
}else{
New-Item -Path $Path -Force
New-ItemProperty -Path $path -Name $entry -Value $value -PropertyType DWord -force | out-null
}
}
createRegEntry $regkeyPath $regEntry $desiredValue
我在这里从 Microsoft 文档中阅读了 Set-ItemProperty 文档,似乎在创建 REG-DWORD 值时,它的 Base 默认为十六进制并且必须手动更改。 以十进制为基数将其更改为 REG_DWORD 的任何方法
regedit UI 中的“base”选项为用户提供了便利。 指令可以很容易地说“将基数设置为十六进制并输入 2e”——它们都是相同的数字。 有时使用十六进制数字更容易 - 例如0xF000
(十六进制)而不是61440
(十进制),反之亦然。
实际上,如果您将对话框设置为十进制,输入 46,然后更改为十六进制,您会看到“数值数据”自动更改为 2e...
它在主要详细信息窗格中显示这两个值:
同样,在编写 PowerShell 代码时,您可以编写$desiredValue = 46
或$desiredValue = 0x2E
并获得相同的结果。 它们都是相同数字的表示 - 一个十进制和一个十六进制 - 这取决于您使用哪种格式的偏好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.