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

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

#检索、下载、安装更新

 #检索更新
$updatesession = New-Object -com Microsoft.Update.Session
$updatesession.ClientApplicationID = "CAID"
$searcher = $updatesession.CreateUpdateSearcher()
#查找未安装的更新(从 已经从Microsoft Update检索到的更新中 进行检索,包含下载或未被下载的更新)
$updates_search = $searcher.search("IsInstalled= 0")
#查找未安装并且未被隐藏的更新( IsInstalled = 0 and IsHidden = 0 )
#$updates_search = $searcher.search("IsInstalled = 0 and IsHidden = 0") ###("Type='Software'")
#并不是所有的属性都可以被搜索,有关详细信息参考MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/aa387101(v=vs.85).aspx
$updates = $updates_search.updates
#查找已下载的更新
$updates_downloaded = $updates |? {$_.IsDownloaded -eq $true}
#查找已下载的更新的标题、重要级别
$updates_downloaded | % {$_ |Select Title,MsrcSeverity} #可选更新的MsrcSeverity值为空 #下载更新:
#查找未下载的更新
$updates_undownloaded = $updates |? {$_.IsDownloaded -eq $false}
$updates_undownloaded[0].title ##kb2506928
$updates_undownloaded.count #把未下载的更新加入下载列表
$updatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
$updatesToDownload.Add($updates_undownloaded[0]) #下载所需要的更新
$downloader = $updatesession.CreateUpdateDownloader()
$downloader.Updates = $updatesToDownload
$downloadResult = $downloader.Download()
$downloadResult |select isdownloaded #安装更新
#把需要进行安装的更新加入安装列表
$updatestoinstall = New-Object -Com Microsoft.Update.UpdateColl
Foreach ($update in $updates_downloaded)
{
$updatestoinstall.Add($update)
}
$updatestoinstall.count #开始安装更新
$installer = $updatesession.CreateUpdateInstaller()
$installer.Updates = $updatestoinstall
$installer.Install()
$installationResults = $installer.Install() #查看更新安装结果
$results=$null
$results=@()
For ($i=0;$i -lt $updatestoinstall.count;$i++)
{
$result = ""|Select Title,ResultCode,RebootRequired
$result.title = $updatestoinstall.item($i).Title
$result.ResultCode = $installationResults.GetUpdateResult($i).ResultCode
$result.RebootRequired = $installationResults.GetUpdateResult($i).RebootRequired
$results += $result
}
$results

 自动下载安装重要更新:

 #该脚本用来检索重要更新并下载、安装
$updatesession = New-Object -com Microsoft.Update.Session
$updatesession.ClientApplicationID = "CAID"
$searcher = $updatesession.CreateUpdateSearcher()
#查找未安装的更新(从 已经从Microsoft Update检索到的更新中 进行检索,包含下载或未被下载的更新)
$updates_search = $searcher.search("IsInstalled= 0")
$updates = $updates_search.updates #过滤重要的更新
$updates_important = $updates| ? {$_.MsrcSeverity -ne $null}
$updatesToDownload = New-Object -Com Microsoft.Update.UpdateColl
Foreach ($updated in $updates_important)
{
If ($updated.IsDownloaded -eq $false)
{
#把未下载的更新加入下载列表
$updatesToDownload.Add($updated)
}
}
#下载所需要的更新,在更新下载过程中脚本会停止
If ($updatesToDownload.count -ne 0)
{
$downloader = $updatesession.CreateUpdateDownloader()
$downloader.Updates = $updatesToDownload
$downloadResult = $downloader.Download()
}
Write-Host "Update is downloading,Please wait..." #把需要进行安装的更新加入安装列表
$updatestoinstall = New-Object -Com Microsoft.Update.UpdateColl
Foreach ($update in $updates_important)
{
$updatestoinstall.Add($update)
} #开始安装更新
$installer = $updatesession.CreateUpdateInstaller()
$installer.Updates = $updatestoinstall
$installer.Install()
$installationResults = $installer.Install() #查看更新安装结果
$results=$null
$results=@()
For ($i=0;$i -lt $updatestoinstall.count;$i++)
{
$i
$result = ""|Select Title,ResultCode,RebootRequired
$result.title = $updatestoinstall.item($i).Title
$result.ResultCode = $installationResults.GetUpdateResult($i).ResultCode
$result.RebootRequired = $installationResults.GetUpdateResult($i).RebootRequired
$results += $result
}
$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)

配置Windows Update,补丁更新的更多相关文章

  1. 解决配置Windows Update失败问题

    大家都清楚电脑总是需要更新一些补丁,不过,很多系统用户发现更新了补丁之后,开机会出现windows update更新失败的情况,提示“配置Windows Update失败,还原更改,请勿关闭计算机”信 ...

  2. win7 配置Windows Update 失败,还原更改,无法进入系统

    win7 配置Windows Update 失败,还原更改,无法进入系统 win7 系统安装好后,忘记了需要关闭自动更新,某天自动更新补丁安装失败,进入下图状态,无法进入正常系统. 解决方案一:使用+ ...

  3. 解决配置Windows Update失败,还原更改问题

    问题描述 由于配置Windows Update失败,还原更改状态下无法正常关机.只能长按电源键关机后进入WinPE环境. 解决步骤 进入WinPE环境->选择Dism++->选择版本-&g ...

  4. Windows 8.1 & Windows 10 取消 Windows Update 自动更新硬件驱动

    最新文章:Virson's Blog 1.打开控制面板,在搜索框中搜索“设备”一次,检索出相关的设备设置功能,如下图: 2.在检索出的结果中点击“更改设备安装设置”,会弹出设备驱动的更新方式,按照如下 ...

  5. win7系统 windows update 总是更新失败解决方法:

    win7系统 windows update 总是更新失败解决方法: 右键单击桌面“计算机”选择“管理“. 进到“计算机管理“窗口后,展开”服务和应用程序“并双击”服务“,在窗口右侧按照名称找到”Win ...

  6. Windows 10 家庭版/专业版 彻底关闭windows update自动更新

    转载: https://blog.csdn.net/u014162133/article/details/84973426# https://blog.csdn.net/qq_40820862/art ...

  7. Windows Update 自动更新 设定 被锁(变灰)

    估计是McAfee自动更改掉的. 真TM烦人. 方法 1 不过找到了回复方法了: http://www.askvg.com/how-to-change-windows-update-settings- ...

  8. Windows7 (Win7) 配置Windows Update 时失败 正在还原更改

    用WinPE启动后,进入Windows\WinSxS目录,想办法删掉pending.xml和reboot.xml

  9. 配置windows失败,还原更新,请勿关机

    同事叫我帮忙弄一下电脑,开机,出现"配置Windows Update失败,还原更改,请勿关闭计算机",我从来不更新Windows Update,更新都为成功,第一次遇到失败了,不知 ...

随机推荐

  1. LeetCode: divideInteger

    Title: Divide two integers without using multiplication, division and mod operator. If it is overflo ...

  2. H.264学习笔记之一(层次结构,NAL,SPS)

    一 H.264句法 1.1元素分层结构 H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素.句法元素被组织成有层次的结构,分别描述各个层次的信息. 图1 H.264分层结构由五层组成,分 ...

  3. java 访问器方法中对象引用的问题

    "注意不要编写返回引用可变对象的访问器方法".因为会破坏类的封装性,引用的内容可能会被改变,产生业务逻辑上的错误. 什么是可变对象? 先要搞清楚java中值传递和引用传递的问题,总结如下: 1.对象就 ...

  4. Oracle RAC OCR 的备份与恢复

    Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表.集群数据库实例到节点的映射以及CRS应用程序资源信息.也即是存放在ocr 磁盘(或者ocfs文件) ...

  5. Oracle 手工清除回滚段的几种方法

    关于回滚段的问题,之前也小整理过一个,参考: Current online Redo 和 Undo 损坏的处理方法 http://blog.csdn.net/tianlesoftware/articl ...

  6. TCP/IP详解学习笔记(2)-数据链路层

    数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP ...

  7. __VA_ARGS__与逗号操作符的巧妙结合

    class Test { public: template<class T> Test& operator,(T t) { //具体操作 return *this; } } Tes ...

  8. Android 打勾显示输入的密码

    main.xml: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:and ...

  9. 【LeetCode 209】Minimum Size Subarray Sum

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...

  10. sql基本语句

    ---恢复内容开始--- 查询有几个不同的职位名称: select distinct name from a: group by: 现在有两个表product和sales,字段分别如下: TABLES ...