1

我正在尝试使用 powershell 清空注册表项。当我运行以下代码时,一切似乎都很好,没有错误,但是在检查注册表时,键的内容仍然存在。

我还想将目标计算机添加到脚本中以从目标计算机中删除失效的密钥。

知道我做错了什么吗?多谢你们。

$hklm = 2147483650
$key = "SOFTWARE\Microsoft\MSLicensing"
$wmi = [wmiclass]"root\default:stdRegProv"
$wmi.DeleteKey($hklm,$key)
4

2 回答 2

0
$hklm = 2147483650
$rootKey = "SOFTWARE\Microsoft\MSLicensing"
$wmi = [wmiclass]"root\default:stdRegProv"
#$wmi.DeleteKey($hklm,$key)

[string[]]$subkeys = $wmi.EnumKey($hklm, $key).sNames

foreach( $subkey in $subkeys ) {

    $key = $rootKey + "\$subkey"

    $wmi.DeleteKey($hklm, $key)
}

$wmi.DeleteKey($hklm, $rootKey)

您的代码失败的原因是您尝试删除的键下方有键。

上面的代码应该可以解决您的问题。

于 2012-06-22T14:11:38.373 回答
0

cd hklm:\SOFTWARE\Microsoft\MSLicensing remove-item 2147483650 -whatif

于 2012-06-23T23:59:31.363 回答