以编程方式为Build 16299上的Windows Update禁用 - ScheduledTask

时间:2018-02-27 18:58:47

标签: windows powershell

我正在尝试解决脚本问题。

在以前构建的Windows 10上,我已经能够使用以下脚本来禁用Windows 10更新:

Get-ScheduledTask -TaskPath "\Microsoft\Windows\WindowsUpdate\" | Disable-ScheduledTask 

Get-ScheduledTask -TaskPath "\Microsoft\Windows\UpdateOrchestrator\" | Disable-ScheduledTask 

stop-service wuauserv

尝试在Build 16299上更新时,禁用命令失败,但出现以下异常:

  

Get-ScheduledTask:系统找不到指定的文件。       + CategoryInfo:ObjectNotFound:(MSFT_ScheduledTask:Root / Microsoft / ... T_ScheduledTask)[Get-ScheduledTas      k],CimException       + FullyQualifiedErrorId:HRESULT 0x80070002,Get-ScheduledTask

我找到的解决方法是使用PSExec打开TaskScheduler

psexec.exe -i -s -accepteula %windir%\system32\mmc.exe /s taskschd.msc

但是,这需要手动禁用每个文件夹中的13个服务。

我的下一个想法是将两者组合成一个.net应用程序,但我想知道是否有人修复了powershell命令。我假设Windows现在正在为任务路径使用某种类型的别名吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

尝试以下PowerShell script

#Disable Windows Update
$WindowsUpdatePath = "HKLM:SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\"
$AutoUpdatePath = "HKLM:SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"

If(Test-Path -Path $WindowsUpdatePath) {
    Remove-Item -Path $WindowsUpdatePath -Recurse
}

New-Item $WindowsUpdatePath -Force
New-Item $AutoUpdatePath -Force

Set-ItemProperty -Path $AutoUpdatePath -Name NoAutoUpdate -Value 1

Get-ScheduledTask -TaskPath "\Microsoft\Windows\WindowsUpdate\" | Disable-ScheduledTask

takeown /F C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator /A /R
icacls C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator /grant Administrators:F /T

Get-ScheduledTask -TaskPath "\Microsoft\Windows\UpdateOrchestrator\" | Disable-ScheduledTask

Stop-Service wuauserv
Set-Service wuauserv -StartupType Disabled

Write-Output "All Windows Updates were disabled" -ForegroundColor Green