c++恢复msconfig.exe禁用的服务和自启动项

msconfig.exe禁用自启动项

msconfig.exe禁用自启动项的时候,都是先删除注册表自启动目录下的相应的项,比如TIM,在msconfig禁用了之后,msconfig会删除"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"目录下的"TIM"项,然后在"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg"下生成"TIM"目录。

因此,如果你需要代码恢复自启动项需要先自己重新添加自启动项到"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"目录下,并且将"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg"下生成的"TIM"目录删除,后面的删除步骤可以不做,但是会让msconfig的启动中残留一个被禁止的自启动项

PS:在64位系统删除"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\TIM"的时候要注意,如果你是用的是SHDeleteKey函数去删除的话,写成以下形式:

HKEY    hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"", 0, KEY_ENUMERATE_SUB_KEYS | DELETE | KEY_WOW64_64KEY, &hKey);
DWORD res = SHDeleteKey(hKey, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services\\EPolSDAgent");

因为64微系统默认的打开的是"SOFTWARE\\Wow6432Node\\Microsoft\\Shared Tools\\MSConfig\\services\\EPolSDAgent"

 

msconfig.exe禁用服务

msconfig.exe禁用VMTools服务的时候,会直接在"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\services"下生成"VMTools"目录,但是并不会删除注册表的服务的信息

因此,如果你需要代码恢复被禁用的服务,直接将"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\services"下生成的"VMTools"目录删除,必须这么做,不然无法解除禁用,删除方法同上。

 

备注

以上的方法都在win7x64位的系统上实验的,其余系统的情况如下(只测试过以下系统):

禁用自启动项:win7和winxp都是一样的,win10原理不明,如果有人知道,希望能够留言告知一下。

禁用服务:win7和win10都是一样的,winxp比较特别,不再是在"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\services"下生成"VMTools"目录,而是在"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\services"下生成"VMTools"的子健,恢复方法与win7类似

 

64位系统和32位系统差异不大,或者说暂时没遇到差异,有问题到时候指出一下

原文地址:https://blog.csdn.net/a854500070/article/details/84403143

请勿随意转载

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值