删除具有随机名称的注册表项

删除具有随机名称的注册表项

我使用的产品在未经我同意的情况下安装在我的系统上,实时更新进程每小时都会在我的系统上运行,即使我没有使用该产品也是如此。

我不知道这个 liveupdate 是干什么的。当然,它可能只是想更新程序,但它可能在做任何事情。这实际上可能是病毒。即使它是合法的,它会做什么?如果发现更新,就开始每小时下载 200 多 MB 的文件?在我不知情的情况下在后台自动更新程序?天知道还有什么。

产品安装程序会创建一个密钥 hkcu\software\liveupdate。该密钥下还有另一个密钥,其名称是随机生成的。在本例中为 611dd93a9b5c578be68b17d997792402。

然后,它添加两个运行条目,一个在 startupapproved 中,一个在 run 中。

我可以删除所有软件,在防火墙中阻止它,并添加路径规则以阻止其运行。

但我想完全自动删除,包括注册表项。如何检索随机生成的键的名称?

“Reg query hkcu\software\liveupdate”会给我密钥名称,但我不知道如何从结果中提取最后一部分 - 随机部分。(通过批处理)

这些是要删除的键;

hkcu\software\liveupdate
hkcu\software\liveupdate\611dd93a9b5c578be68b17d997792402
hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run\611dd93a9b5c578be68b17d997792402
hkcu\Software\Microsoft\Windows\CurrentVersion\Run\611dd93a9b5c578be68b17d997792402

答案1

这会将键的名称放入名为 KeyName 的变量中:

for /f "Delims=" %%a in ('reg query hkcu\software\liveupdate') do set "KeyName=%%~nxa"

因此批次可能是这样的:

@echo off

for /f "Delims=" %%a in ('reg query hkcu\software\liveupdate') do set "KeyName=%%~nxa"

reg delete "hkcu\software\liveupdate" /f
reg delete "hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run" /v "%KeyName%" /f
reg delete "hkcu\Software\Microsoft\Windows\CurrentVersion\Run" /v "%KeyName%" /f

相关内容