2012-06-21 78 views
1

我正嘗試使用powershell來清空註冊表項。當我運行下面的代碼時,一切似乎都很好,沒有錯誤,但是在檢查註冊表時,密鑰的內容仍然存在。使用Powershell進行WMI註冊表編輯

我想要添加一個目標計算機到腳本中以從目標機器中刪除已失效的密鑰。

任何想法我做錯了什麼?多謝你們。

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

回答

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) 

你的代碼是失敗的原因是,有您要刪除鍵的下方按鍵。

上述代碼應該解決您的問題。

+0

優秀非常感謝你!我的WMI知識非常糟糕。您可能會建議您在PowerShell中獲得有關WMI的一些知識嗎? – user1404390

0

CD HKLM:\ SOFTWARE \微軟\ MSLicensing項 刪除項2147483650 -whatif