windows 使用 PowerShell 禁用自动更新

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5682270/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 16:39:32  来源:igfitidea点击:

Disable Automatic Updates with PowerShell

windowspowershell

提问by LP.

I would like to know how to disable Automatic Updates with PowerShell on a windows machine.

我想知道如何在 Windows 机器上使用 PowerShell 禁用自动更新。

Thanks in advance!

提前致谢!

采纳答案by Andy Schneider

Here's a couple functions to set and get Windows Update configurations

这是设置和获取 Windows 更新配置的几个函数

$SCRIPT:AutoUpdateNotificationLevels= @{   

0="Not configured"; 
1="Disabled"; 
2="Notify before download";
3="Notify before installation"; 
4="Scheduled installation"

}

$SCRIPT:AutoUpdateDays=@{
0="Every Day"; 
1="Every Sunday"; 
2="Every Monday"; 
3="Every Tuesday"; 
4="Every Wednesday";
5="Every Thursday"; 
6="Every Friday"; 
7="Every Saturday"
}


Function Get-WindowsUpdateConfig
{
    $AUSettings = (New-Object -com "Microsoft.Update.AutoUpdate").Settings
    $AUObj = New-Object -TypeName System.Object

    Add-Member -inputObject $AuObj -MemberType NoteProperty -Name "NotificationLevel"  `
               -Value $AutoUpdateNotificationLevels[$AUSettings.NotificationLevel]

    Add-Member -inputObject $AuObj -MemberType NoteProperty -Name "UpdateDays" `
               -Value $AutoUpdateDays[$AUSettings.ScheduledInstallationDay]

    Add-Member -inputObject $AuObj -MemberType NoteProperty -Name "UpdateHour"   `
               -Value $AUSettings.ScheduledInstallationTime 

    Add-Member -inputObject $AuObj -MemberType NoteProperty -Name "Recommended updates" `
               -Value $(IF ($AUSettings.IncludeRecommendedUpdates) {"Included"}  else {"Excluded"})
    $AuObj
 } 

Function Set-WindowsUpdateConfig
{
Param (

[Parameter()]
[ValidateRange(0,4)]
[int]
$NotificationLevel , 

[Parameter()]
[ValidateRange(0,7)]
[int]
$Day, 

[Parameter()]
[ValidateRange(0,24)]
[int]
$hour, 

[Parameter()]
[bool]
$IncludeRecommended
)

 $AUSettings = (New-Object -com "Microsoft.Update.AutoUpdate").Settings
 if ($NotificationLevel)  {$AUSettings.NotificationLevel        =$NotificationLevel}
 if ($Day)                {$AUSettings.ScheduledInstallationDay =$Day}
 if ($hour)               {$AUSettings.ScheduledInstallationTime=$hour}
 if ($IncludeRecommended) {$AUSettings.IncludeRecommendedUpdates=$IncludeRecommended}
 $AUSettings.Save()
} 

回答by Doug Finke

Here is a link and how to set the registry settings

这是一个链接以及如何设置注册表设置

# http://support.microsoft.com/kb/328010

New-Item HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name WindowsUpdate
New-Item HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name AU
New-ItemProperty HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU -Name NoAutoUpdate -Value 1

回答by T.Todua

you can use CMDcommand:

您可以使用CMD命令:

 sc stop wuauserv