
win10更新下载的位置
win10更新进程
隐藏窗口运行和提高执行权限
实现反复运行和开机自启
win10这个商业巨头微软的最新之作,以无赖行径著称,特别是它的自动更新最受非议。用户无权选择是否下载和安装更新。你选择不更新,他就在后台下载,下次开机自动安装。何况,这种更新有的没必要,有的装上反而起副作用。我之前就被装上的更新弄坏网卡驱动,重装一次系统;去年3月大范围爆发的更新bug,使得很多用户USB驱动坏掉,又重装一次系统。再当时,我明白了更新的损害,就每天手动删除这些更新安装包,结果有一次它后台下载吃掉我3GB流量。看来,强行制止win10自动更新已成必要。
我一年多来和win10的艰苦卓绝的争斗,现在总算取得了基本的胜利,洗雪了重置两次系统的奇耻大辱(可笑~)。下面我就把经验分享给你们,当然也没那么悲惨,就是多观察,多搜索,写成一个10行左右的小插件即可。主要系统就是,随时制止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~3GB的流量,所以不是王卡我认为没人遭受得起。所以,还要寻找win10更新的关键进程,一旦运行立即结束。我们明白结束进程的指示是taskkill,上面就来讨论这个。
win10更新有两个关键进程。这些进程不是用流程文档名来指出的,只是用服务名来指出的。服务就是后台进程,但是从文件名是找不到的,必须用taskkill命令中的一些特定选项。
我按照CPU风扇声就能断定win10是否在下载更新(这就是常年斗争磨练出来的,譬如我就打开一个office,空调异响,那肯定是后台高损耗进程)。这时观察网速,所以没有下载任务,网速异动(譬如突然上升到最快),那无疑是更新流程在作祟。这时打开任务管理器,按网速排序,最快的那种就是关键下载流程。
这个进程我早已摸索到了,你们之后直接针对它就行。那就是dosvc服务。
还有一个win10更新主进程,就叫wuauserv服务。
不知道服务进程的小伙伴有点懵,这都是什么东东?别着急,我们慢慢来说。
打开任务管理器win10关机时 结束程序,如下图
以“服务主机”结尾的进程,就是服务进程。这不是废话吗,哈哈。我们并不需要知道具体是哪一个之下的。我们刚才已经明白关键进程了,但是想办法kill掉!
taskkill命令有一个/fi选项。它是用于指定筛选器的。筛选器,顾名思义就是选择符合指定条件的进程来杀掉。所以关键在前面的筛选条件。
筛选条件不言自明,就是名称为 dosvc 的服务进程,和名称为wuauserv的服务进程。

筛选条件就是下面的文档(切记必须有括号):
"name operator value"
name叫做筛选器名称。我们要结束服务进程,但是筛选器名称就是services。
opeartor叫做运算符,包含eq–等于,ne–不等于。我们选择eq。
value叫做筛选值,这儿要筛选服务,但是指定名称,那就是dosvc和wuauserv。
如果win10关机时 结束程序,taskkill还需要加上/f选项,认为强制结束。
如果,结束这两个进程的指示,就写出
taskkill /f /fi "services eq wuauserv"
taskkill /f /fi "services eq dosvc"
运行的时候,又是愚蠢的拒绝访问。好了,第三步到了,我们要新账老账一起算,解决权限问题。
我们明白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要赋值。
把这两行放到我们批处理文件的颈部,就可以作出一个完整的插件了。不过,还有一点需要提醒,为了隐藏窗口,需要我们把运行时的echo回显器关掉,但是这两行后面再加一行
@echo off
这就完了?No。我刚才说了,win10喜欢对着干,你刚结束它又重启,但是是会开机自启的。所以,魔高一尺道高一丈,我们也得自动反复运行和开机自启。
反复运行这个很简单,就是用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表示你的用户名。这个目录必须在窗口下从硬盘起一级一级点下去,不能直接复制黏贴到地址栏,如果会权限不够拒绝访问。
我们来整合一下完整的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放置刚才打开的那种目录里。大功告成啦!重启一下电脑,说说它有没有开机自启。注意一定要检查国产安全插件中开机启动项的设置,把刚才制作的插件放行。不然,开机不自启那叫多少东西啊。
我们一共用了taskkill,timeout,del,goto,mshta五种命令,并学到了开机自启等方式。其实DOS命令很强悍,它可以帮我们做自动化处理,特别是文档管理方面的工作,用户可以从繁杂、重复性的工作中解放双脚,去做有意义的小事。
同时,我们也看见微软也是垄断行业的很大权利,它可以随意控制用户的计算机。所以,发展国产操作系统也是势在必行。如果中国有足够多的优秀Linux开发者,打破微软的垄断地位也就不是不可行了。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-118936-1.html
fightordie