标题: [注册表类] 批处理如何删除已知键值关键字符的注册表项? [打印本页]
作者: maghreb 时间: 2023-9-28 18:45 标题: 批处理如何删除已知键值关键字符的注册表项?
已知注册表中的某一大项(如HKEY_LOCAL_MACHINE\SOFTWARE\XYZ)下有:1、某些小项含有关键字符(如abc),但位置未知,例如HKEY_LOCAL_MACHINE\SOFTWARE\XYZ\...\123-abc-456,2、某些小项下的键或键值含有关键字符(同样是abc)
求解决:删除所有含有关键字符(如abc)的小项,无论是小项名称中包含关键字符还是键或键值包含关键字符,均删除其小项
作者: Five66 时间: 2023-10-1 18:44
3天惨案
应该可以用powershell的gci命令遍历注册表然后判断进行删除,不过对注册表部分不熟不好弄,而且也不好测试
作者: Nsqs 时间: 2023-10-7 04:15
- $delete?='abc'
- dir Registry::HKEY_LOCAL_MACHINE\SOFTWARE\XYZ -Recurse -ErrorAction SilentlyContinue|%{
- $Name=$_.Name
- if([regex]::Matches($Name,'(?!.+\\).+$').value -match $delete?){
- try {
- del Registry::$Name -WhatIf -Recurse -Force -ErrorAction SilentlyContinue
- if(!$?){throw}
- }catch{
- Write-Warning "目标删除失败: $Name"
- }
- }
- Get-ItemProperty Registry::$Name -Name $delete? -ErrorAction SilentlyContinue|%{
- $Name=$_.Name
- try {
- Remove-ItemProperty Registry::$Name $delete? -WhatIf
- if(!$?){throw}
- }catch{
- Write-Warning "目标删除失败: $Name"
- }
- }
- }
复制代码
没有实物测试,所以凭感觉写的,删除可能会比较久,因为注册表的数据量实在太大了 去掉whatif可以执行真正的删除,不去掉则只是测试结果
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |