我想从HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-1-5-2 \ Components
删除包含Python35
的所有密钥(1000+)
例如,我想删除所有类似于那个的键:
Keyname:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-2\Components\0027CAECCC428F356B8D845FF8331246
姓名:0F617A7B1C879BC47865E0155CDD6722
C:\Users\Me\AppData\Local\Programs\Python\Python35\Lib\venv\__init__.py
我试过这个。
Get-ChildItem -path HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-2\Components\ -Recurse | where { $_.Name -match 'Python35'} | Remove-Item -Force
Powershell运行没有错误但是当我检查注册表时,密钥仍然存在。
Powershell以管理员身份运行,管理员拥有密钥HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-2\Components
的所有权,并且还可以完全控制该密钥及其子密钥
答案 0 :(得分:5)
尝试以下脚本:
$RE = 'Python35'
$Key = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-2\Components'
Get-ChildItem $Key -Rec -EA SilentlyContinue | ForEach-Object {
$CurrentKey = (Get-ItemProperty -Path $_.PsPath)
If ($CurrentKey -match $RE){
$CurrentKey|Remove-Item -Force -Whatif
}
}
如果输出看起来正常,请从-WhatIf
Remove-Item
参数