windows - 使用 PowerShell 禁用自动更新

标签 windows powershell

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

提前致谢!

最佳答案

这里有几个函数可以设置和获取 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()
} 

关于windows - 使用 PowerShell 禁用自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5682270/

相关文章:

xml - 将多个基于 cmdlet xml 的帮助文件写入单个 xml 文件

google-chrome - 在Windows上清除C​​hrome或Firefox缓存的脚本

python - 转换代码以在windows中读取文件到linux

windows - 使用 xperf 列出每个进程访问的文件?

windows - 如何根据操作系统系列具有不同的依赖关系

c++ - WriteFile 到并行端口挂起

sql-server - 使用 PowerShell 脚本复制 SQL Server 数据库

php - Windows 上的内存缓存,找不到错误 php5.dll

powershell - 开始作业的脚本 block 在 Powershell 中挂起?

arrays - 使用 Powershell "where"命令与值数组进行比较