使用Powershell进行WMI注册表编辑

时间:2012-06-21 21:40:23

标签: powershell

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

我还想在脚本中添加目标计算机,以从目标计算机中删除已解除密钥。

任何想法我做错了什么?谢谢你们。

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

2 个答案:

答案 0 :(得分: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)

您的代码失败的原因是您尝试删除的密钥下面有密钥。

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

答案 1 :(得分:0)

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