zoukankan      html  css  js  c++  java
  • 配置Windows Update,补丁更新

    配置Windows Update更新下载及安装方式:

     1 #NotificationLevel说明:
     2 # 0:未配置,不会对当前设置进行更改
     3 # 1:从不检查更新
     4 # 2:检查更新,但是让我选择是否下载和安装更新
     5 # 3:下载更新,但是让我选择是否安装更新
     6 # 4:自动安装更新
     7 
     8 $AutoUpdateSettings = (New-Object -com "Microsoft.Update.AutoUpdate").Settings
     9 $AutoUpdateSettings.NotificationLevel =3
    10 #$AutoUpdateSettings.ScheduledInstallationDay =1   # 0表示每天;1表示每周日;2表示每周一......
    11 #$AutoUpdateSettings.ScheduledInstallationTime =2  # 0表示0:00;1表示1:00;2表示2:00......,仅当.NotificationLevel =4时有效
    12 $AutoUpdateSettings.Save()
    13 (New-Object -com "Microsoft.Update.AutoUpdate").Settings

    #检索、下载、安装更新

     1 #检索更新
     2 $updatesession = New-Object -com Microsoft.Update.Session
     3 $updatesession.ClientApplicationID = "CAID"
     4 $searcher = $updatesession.CreateUpdateSearcher()
     5 #查找未安装的更新(从 已经从Microsoft Update检索到的更新中 进行检索,包含下载或未被下载的更新)
     6 $updates_search = $searcher.search("IsInstalled= 0")  
     7 #查找未安装并且未被隐藏的更新( IsInstalled = 0 and IsHidden = 0 )
     8 #$updates_search = $searcher.search("IsInstalled = 0 and IsHidden = 0") ###("Type='Software'")
     9 #并不是所有的属性都可以被搜索,有关详细信息参考MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/aa387101(v=vs.85).aspx
    10 $updates = $updates_search.updates
    11 #查找已下载的更新
    12 $updates_downloaded = $updates |? {$_.IsDownloaded -eq $true}
    13 #查找已下载的更新的标题、重要级别
    14 $updates_downloaded | % {$_ |Select Title,MsrcSeverity}   #可选更新的MsrcSeverity值为空
    15 
    16 #下载更新:
    17 #查找未下载的更新
    18 $updates_undownloaded = $updates |? {$_.IsDownloaded -eq $false}
    19 $updates_undownloaded[0].title ##kb2506928
    20 $updates_undownloaded.count
    21 
    22 #把未下载的更新加入下载列表
    23 $updatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
    24 $updatesToDownload.Add($updates_undownloaded[0])
    25 
    26 #下载所需要的更新
    27 $downloader = $updatesession.CreateUpdateDownloader() 
    28 $downloader.Updates = $updatesToDownload
    29 $downloadResult = $downloader.Download()
    30 $downloadResult |select isdownloaded
    31 
    32 
    33 
    34 #安装更新
    35 #把需要进行安装的更新加入安装列表
    36 $updatestoinstall = New-Object -Com Microsoft.Update.UpdateColl
    37 Foreach ($update in $updates_downloaded)
    38     {
    39      $updatestoinstall.Add($update)
    40     }
    41 $updatestoinstall.count
    42     
    43 #开始安装更新
    44 $installer = $updatesession.CreateUpdateInstaller()
    45 $installer.Updates = $updatestoinstall
    46 $installer.Install()
    47 $installationResults = $installer.Install()
    48 
    49 #查看更新安装结果
    50 $results=$null
    51 $results=@()
    52 For ($i=0;$i -lt $updatestoinstall.count;$i++)
    53     {
    54      $result = ""|Select Title,ResultCode,RebootRequired
    55      $result.title = $updatestoinstall.item($i).Title 
    56      $result.ResultCode = $installationResults.GetUpdateResult($i).ResultCode
    57      $result.RebootRequired = $installationResults.GetUpdateResult($i).RebootRequired
    58      $results += $result
    59     }
    60 $results    

     自动下载安装重要更新:

     1 #该脚本用来检索重要更新并下载、安装
     2 $updatesession = New-Object -com Microsoft.Update.Session
     3 $updatesession.ClientApplicationID = "CAID"
     4 $searcher = $updatesession.CreateUpdateSearcher()
     5 #查找未安装的更新(从 已经从Microsoft Update检索到的更新中 进行检索,包含下载或未被下载的更新)
     6 $updates_search = $searcher.search("IsInstalled= 0")  
     7 $updates = $updates_search.updates
     8 
     9 #过滤重要的更新
    10 $updates_important = $updates| ? {$_.MsrcSeverity -ne $null}
    11 $updatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
    12 Foreach ($updated in $updates_important)
    13     {
    14      If ($updated.IsDownloaded -eq $false)
    15         {
    16         #把未下载的更新加入下载列表
    17         $updatesToDownload.Add($updated)
    18         }
    19     }
    20 #下载所需要的更新,在更新下载过程中脚本会停止
    21 If ($updatesToDownload.count -ne 0)
    22     {
    23     $downloader = $updatesession.CreateUpdateDownloader() 
    24     $downloader.Updates = $updatesToDownload
    25     $downloadResult = $downloader.Download()
    26     }
    27 Write-Host "Update is downloading,Please wait..."
    28 
    29 #把需要进行安装的更新加入安装列表
    30 $updatestoinstall = New-Object -Com Microsoft.Update.UpdateColl
    31 Foreach ($update in $updates_important)
    32     {
    33      $updatestoinstall.Add($update)
    34     }
    35     
    36 #开始安装更新
    37 $installer = $updatesession.CreateUpdateInstaller()
    38 $installer.Updates = $updatestoinstall
    39 $installer.Install()
    40 $installationResults = $installer.Install()
    41 
    42 #查看更新安装结果
    43 $results=$null
    44 $results=@()
    45 For ($i=0;$i -lt $updatestoinstall.count;$i++)
    46     {
    47     $i
    48      $result = ""|Select Title,ResultCode,RebootRequired
    49      $result.title = $updatestoinstall.item($i).Title 
    50      $result.ResultCode = $installationResults.GetUpdateResult($i).ResultCode
    51      $result.RebootRequired = $installationResults.GetUpdateResult($i).RebootRequired
    52      $results += $result
    53     }
    54 $results    

    Windows Update相关COM组件:

    Microsoft.Update.AutoUpdate :提供了对Microsoft Update自动更新计划的管理

    Microsoft.Update.UpdateColl:提供了Microsoft Update更新的下载、安装 (http://msdn.microsoft.com/en-us/library/windows/desktop/aa386107(v=vs.85).aspx)

    Microsoft.Update.Installer: 允许从Microsoft Update安装更新 (http://msdn.microsoft.com/en-us/library/windows/desktop/aa386491(v=vs.85).aspx)

    Microsoft.Update.Searcher:从Microsoft Update更新提供搜索功能

    Microsoft.Update.Session:提供对有关Microsoft Update本地历史记录的信息的访问 (http://msdn.microsoft.com/en-us/library/windows/desktop/aa386854(v=vs.85).aspx)

    Microsoft.Update.SystemInfo:提供对当前系统与Microsoft Update有关的信息的访问

    参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa387102(v=vs.85).aspx (VBS_WUA)

  • 相关阅读:
    Git centos 6.5 搭建(gitosis)
    error at ::0 can't find referenced pointcut xxx
    MySql 主从配置
    svn 搭建
    Flatbuffers学习
    python3 获取函数变量
    pyqt5 重启相同线程错误:QThread: Destroyed while thread is still running
    WIN10 使用注册表设置单应用KIOSK模式(不限win10版本)
    WIN10 使用POWERSHELL 设置单应用KIOSK模式(win10家庭版或企业版)
    py文件加密打包成exe文件
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/4028396.html
Copyright © 2011-2022 走看看