前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用PowerShell批量删除注册表项

如何使用PowerShell批量删除注册表项

作者头像
卡尔曼和玻尔兹曼谁曼
发布2022-09-27 08:33:33
4.1K0
发布2022-09-27 08:33:33
举报
文章被收录于专栏:给永远比拿愉快

如何使用PowerShell批量删除注册表项

问题描述

卸载了可牛压缩软件以后,发现右键菜单中仍然有可牛压缩的选项。不用想就知道是注册表中有该软件的残留。 打开注册表,进行搜索发现在计算机\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480-1001\Software\Classes的子目录下有超过100+的关于可牛压缩的子项。 注册表编辑器还不支持按住Shift进行多选,所以只能使用脚本进行批量删除。 !!!友情提示,删除之前请进行注册表备份,或者你百分比确定你的代码没有问题,再执行,否则发生的任何损失,本文概不负责!!!

观察和该软件相关的项目名称,发现名称中均有计算机\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480-1001\Software\Classes\kzip_main.exe.*这样的形式。有规律就好办了,下面我们开始介绍相关知识,并进行代码批量删除。

注册表路径以及如何获得注册表子项

在PowerShell中注册表也有路径,跟我们文件和文件夹路径类似,上面的注册表项的路径可以表示为: REGISTRY::\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480-1001\Software\Classes\。 那我们如何获得该注册表路径下面的所有子项呢?使用Get-ChildItem命令(别名dir或者l),代码如下:

代码语言:javascript
复制
$root = "REGISTRY::\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480-1001\Software\Classes\"
$items = (l -Path $root)

第一行定义注册表路径,第二行得到该路径下的所有子项,结果为Array数组类型。

基于条件过滤删除项

因为我们要删除的子项名称中都包含“kzip_main.exe”这样的字符,所以我们使用Where-Object命令(别名where或者?)进行条件过滤,代码如下:

代码语言:javascript
复制
$items = $items | ? {$_.PSPath -like "*kzip_main.exe*"}

其中,|为管道运算符,将操作符前面的结果传递到操作符后面的处理中。_符号代表迭代过程中的每个变量,是PSItem系统内置变量的别名。在这里即代表的是

For循环删除子项

通过?命令选择出来要删除的元素以后,我们可以使用ForEach_Object命令(别名foreach或者%)遍历该数组删除所有元素,代码如下:

代码语言:javascript
复制
$items | % {rm -Force -Recurse $_.PSPath}

其中,-Force-Recurse参数代表强制删除和迭代删除子项。

总结起来,上面的代码可以写成如下一行:

代码语言:javascript
复制
(l -Path "REGISTRY::\HKEY_USERS\S-1-5-21-3610452307-4043425157-186669480-1001\Software\Classes\") | ? {$_.PSPath -like "*kzip_main.exe*"} | % {rm -Force -Recurse $_.PSPath}

在强调一遍,注册表删除有风险,最好进行备份再进行操作!!!PEACE OUT!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用PowerShell批量删除注册表项
  • 问题描述
  • 注册表路径以及如何获得注册表子项
  • 基于条件过滤删除项
  • For循环删除子项
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档