⽤批处理⽂件阻⽌win10强制更新
1. win10更新下载的位置最小的国家
2. win10更新进程儿童电影大全
3. 隐藏窗⼝运⾏和提升执⾏权限
4. 实现反复运⾏和开机⾃启
win10这个商业巨头微软的最新之作,以流氓⾏径著称,尤其是它的⾃动更新最受诟病。⽤户⽆权选择是否下载和安装更新。你选择不更新,他就在后台下载,下次开机⾃动安装。何况,这些更新有的没必要,有的装上反⽽起副作⽤。我之前就被装上的更新弄坏⽹卡驱动,重装⼀次系统;去年3⽉⼤范围爆发的更新bug,导致众多⽤户USB驱动坏掉,⼜重装⼀次系统。再后来,我知道了更新的危害,就每天⼿动删除那些更新安装包,结果有⼀次它后台下载吃掉我3GB流量。看来,强⾏阻⽌win10⾃动更新已成必要。
我⼀年多来和win10的艰苦卓绝的⽃争,现在终于取得了完全的胜利,洗雪了重置两次系统的奇耻⼤辱(滑稽~)。下⾯我就把经验分享给⼤家,其实也没那么残酷,就是多观察,多搜索,写出⼀个10⾏左右的⼩脚本即可。主要功能就是,随时阻⽌win10更新进程,并删掉已下载的安装包。为了完整地实现
上述功能,要认真地看完这篇⽂,虽然⽐较长,但这是⼀劳永逸的事,多好!⼤家最好动⼿写⼀遍,不要直接复制粘贴,这样就对这⼀系列命令有了解,以后做这样的脚本也得⼼应⼿。
1、win10更新下载的位置
根据我的观察以及搜索引擎的帮助,可知,win10下载的更新是⼀些压缩包,需要系统专门进程来引导安装。我曾经在某个更新被安装后⼿动卸载,但这已经迟了,其实它根本卸载不了,**关键要在它被安装之前拦截住,删掉安装包。**这些安装包在下⾯的路径:
C:\WINDOWS\SoftwareDistribution\Download
如果你发现这⾥有好多⽂件,就要⼿动把它删掉。但是,这太⿇烦了。据我观察,win10更新程序玩的嗨的时候,两分钟就能运⾏⼀次,所以必须有⼀种⾃动化的删除⽅法。
懂DOS命令的童鞋都知道有⼀个del命令能帮我们删除这些⽂件。del命令有⼏个选项,我们要⽤到的就是/f /s /q三个选项。/f表⽰强制删除,/s表⽰递归删除⽬录下所有⽂件,/q表⽰不提⽰⽤户选择⽽直接删除。所以应当这样写:
del /f /s /q C:\WINDOWS\SoftwareDistribution\Download
如果我们在cmd命令⾏中输⼊这个命令,会反馈“拒绝访问”。这表明我们的权限不够。在Linux⾥⾯可以⽤sudo,win10怎么办呢?别急,反正⽅法已经有了,权限的事情很简单,我们稍后会专门讨论。
2、win10更新进程
刚才说了,仅仅靠删除安装包是不⾏的。如果你⽤的宽带那⽆所谓,如果你⽤⼿机热点,好家伙,⼀次下载更新需要2~3GB的流量,如果不是王卡我觉得没⼈承受得起。所以,还要到win10更新的关键进程,⼀旦运⾏⽴即结束。我们知道结束进程的命令是taskkill,下⾯就来讨论这个。
win10更新有两个关键进程。这些进程不是⽤程序⽂件名来表⽰的,⽽是⽤服务名来表⽰的。服务就是后台进程,所以从⽂件名是不到的,必须⽤taskkill命令中的⼀些特殊选项。
我根据CPU风扇声就能判断win10是否在下载更新(这就是常年⽃争磨练出来的,⽐如我就打开⼀个office,风扇异响,那肯定是后台⾼消耗进程)。这时观察⽹速,如果没有下载任务,⽹速异动(⽐如突然飙升到最快),那⽆疑是更新程序在作怪。这时打开任务管理器,按⽹速排序,最快的那个就是关键下载程序。
美国股市熔断这个进程我已经摸索到了,⼤家以后直接针对它就⾏。那就是dosvc服务。
还有⼀个win10更新主进程,叫做wuauserv服务。
不知道服务进程的⼩伙伴有点懵,这都是什么玩意?别着急,我们慢慢来说。
打开任务管理器,如下图
以“服务主机”开头的进程,就是服务进程。这不是废话吗,哈哈。我们并不需要知道具体是哪⼀个之下的。我们刚才已经知道关键进程了,所以想办法kill掉!
taskkill命令有⼀个/fi选项。它是⽤来指定筛选器的。筛选器,顾名思义就是选择符合指定条件的进程来杀掉。所以关键在后⾯的筛选条件。
筛选条件不⾔⾃明,就是名称为 dosvc 的服务进程,和名称为wuauserv的服务进程。
筛选条件就是下⾯的格式(注意必须有引号):
"name operator value"
name叫做筛选器名称。我们要结束服务进程,所以筛选器名称就是services。
opeartor叫做运算符,包括eq–等于,ne–不等于。我们选择eq。
value叫做筛选值,这⾥要筛选服务,所以指定名称,那就是dosvc和wuauserv。
另外,taskkill还需要加上/f选项,表⽰强制结束。
所以,结束这两个进程的命令,就写成
taskkill /f /fi "services eq wuauserv"
taskkill /f /fi "services eq dosvc"
运⾏的时候,⼜是可恶的拒绝访问。好了,第三步到了,我们要新账⽼账⼀起算,解决权限问题。
3、隐藏窗⼝运⾏和提升执⾏权限
我们知道Linux⾥⾯有sudo命令,⽤来以root⾝份执⾏命令。但是Windows的cmd⾥⾯没有。你要双击运⾏,改成右键以管理员⾝份也⾏。但是我们要开机⾃启的,怎么右键呢?所以我们要请来⼀个更神奇的⼯具–vbs。
cmd中⽤来调⽤vbs脚本命令的命令(有点绕⼝是吧)就是mshta。这个vbs我⽤的不太熟,所以百度了⼀下,真有⼤神会弄。所以我直接粘贴⼀下,做点简单的解释。
cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",0)(window.close)&exit
第⼀⾏是进⼊某个特殊⽬录,我也不懂这个⽬录是什么,但和访问权限检测有关。第⼆⾏就是⽤vbs⾥⾯的 shellexecute 函数来提升访问权限的。
函数格式就是:
shellexecute(file, arguments, directory, operation, show)
第⼀个参数是要执⾏的⽂件,第⼆个是赋予的参数字符串,第三个是⽂件所在路径,第四个是管理员权限操作符runas,第五个是是否打开窗⼝。我们执⾏这种后台程序,最好的模式就是管理员⾝份运⾏,并且不弹出⿊窗⼝,所以runas要打开,show要赋值0。
把这两⾏放到我们批处理⽂件的头部,就可以做出⼀个完整的脚本了。不过,还有⼀点需要注意,为了隐藏窗⼝,需要我们把运⾏时的echo回显器关掉,所以这两⾏后⾯再加⼀⾏
@echo off
这就完了?No。我刚才说了,win10喜欢对着⼲,你刚结束它⼜重启,⽽且是会开机⾃启的。所以,魔⾼⼀尺道⾼⼀丈,我们也得⾃动反复运⾏和开机⾃启。
本年利润结转4、实现反复运⾏和开机⾃启
反复运⾏这个很简单,就是⽤goto命令构造⼀个死循环。我们把刚才结束进程和删除⽂件的命令总结⼀下,把它们放到循环体中。
低风险地区定义死循环也得有个度,不能间隔太短,不然你的CPU会炸了的。据我观察,⼀个更新进程10秒钟重启是不太可能的,所以我们把间隔调成10秒。
这就是timeout命令。有两个选项,/nobreak表⽰不等待⽤户按键,只等待计时器。/t⽤来指定延时。所以写成
timeout /nobreak /t 10
合起来就是:
:loop
taskkill /f /fi "services eq wuauserv"
taskkill /f /fi "services eq dosvc"
del /f /s /q C:\Windows\SoftwareDistribution\download
timeout /nobreak /t 10
goto loop
抚州景点冒号开头的:loop表⽰标号,下⾯的goto语句就是返回标号,这就实现了反复执⾏。
下⾯来看开机⾃启
需要知道win10启动项所在位置。如果作为⽤户启动项,那就是
C:\Users\Username\Appdata\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp
username表⽰你的⽤户名。这个⽬录必须在窗⼝下从C盘起⼀级⼀级点下去,不能直接复制粘贴到地址栏,否则会权限不够拒绝访问。
我们来整合⼀下完整的bat⽂件:
cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",0)(window.close)&exit
@echo off
:loop
taskkill /f /fi "services eq wuauserv"
taskkill /f /fi "services eq dosvc"
del /f /s /q C:\Windows\SoftwareDistribution\download
timeout /nobreak /t 10
goto loop
把它写在记事本⾥,然后保存,后缀名改为bat。双击运⾏⼀下,看看是不是没有⼩⿊窗⼝了?打开任务管理器,看到有Windows命令管理程序,还有⼀个超时什么的,这就是成功了。
最后呢?开机⾃启,那我们就把这个bat放在刚才打开的那个⽬录⾥。⼤功告成啦!重启⼀下电脑,看
看它有没有开机⾃启。注意⼀定要检查国产安全软件中开机启动项的设置,把刚才制作的脚本放⾏。不然,开机不⾃启那叫什么东西啊。
5、总结
我们⼀共⽤了taskkill,timeout,del,goto,mshta五种命令,并学到了开机⾃启等⽅法。其实DOS命令很强⼤,它可以帮我们做⾃动化处理,尤其是⽂件管理⽅⾯的⼯作,⽤户可以从繁琐、重复性的⼯作中解放双⼿,去做有意义的事情。
同时,我们也看到微软作为垄断企业的巨⼤权⼒,它可以随意控制⽤户的计算机。所以,发展国产操作系统也是势在必⾏。如果中国有⾜够多的优秀Linux开发者,打破微软的垄断地位也就不是不可⾏了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论