PowerShell永久禁止Windows更新【可恢复】【适用于任何Edition】

啊涛 发布于 2023-07-05 749 次阅读


为了保证影响范围最小,故再次缩小处理范围,只针对Windows更新核心文件usosvc.dll做了权限处理,其它Windows更新的关联文件不做任何处理。
禁止的原理:使用微软自己的SID创建SDDL禁止Windows访问更新启动程序。
还原的原理:因为System32下的文件权限都是一个模子刻出来的,随便选个文件把SDDL权限条目覆盖回原来被修改的文件即可正常使用Windows更新了!

注意:PowerShell需要以管理员身份运行!
执行PowerShell代码后重启电脑生效

#禁止更新
(SystemObjcetNull=New-Object System.Security.AccessControl.FileSecurity)|Where-Object{_.SetSecurityDescriptorSddlForm("O:S-1-0-0G:S-1-0-0D:PAI(D;;FA;;;WD)")}
Set-Acl -Path "C:\Windows\System32\usosvc.dll" -AclObject $SystemObjcetNull





#还原更新
Set-Acl -Path "C:\Windows\System32\usosvc.dll" -AclObject (Get-Acl "C:\Windows\System32\cmd.exe")