配置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. Java [Leetcode 257]Binary Tree Paths

    题目描述: Given a binary tree, return all root-to-leaf paths. For example, given the following binary tr ...

  2. RTP封装h264

    网络抽象层单元类型 (NALU): NALU头由一个字节组成,它的语法如下: +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+ ...

  3. h.264码流解析_一个SPS的nalu及获取视频的分辨率

    00 00 00 01 67 42 00 28 E9 00  A0 0B 77 FE 00 02 00 03 C4 80  00 00 03 00 80 00 00 1A 4D 88  10 94 0 ...

  4. svn强制提交备注信息

    当我们用tortoisesvn,提交代码时,有很多人不喜欢写注释的,代码版本多了,根本搞不清,哪个版本改了什么东西?所以如果加一些注释的话,我们看起来,也方便很多.所以在提交的时候,我会强制要求,写注 ...

  5. HashMap的两种遍历方式

    HashMap的两种遍历方式 HashMap存储的是键值对:key-value . java将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了Hash ...

  6. 仿酷狗音乐播放器开发日志二十三 修复Option控件显示状态不全的bug(附源码)

    转载请说明原出处,谢谢~~ 整个仿酷狗工程的开发将近尾声,现在还差选项设置窗体的部分,显然在设置窗体里用的最多的就是OptionUI控件,我在写好大致的布局后去测试效果,发现Option控件的显示效果 ...

  7. [原创]cocos2d-x + Lua接入iOS原生SDK的实现方案

    相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我 ...

  8. redo文件四

    v$session_wait 用来查询redo buffer的空间信息 select sid,event,seconds_in_wait,state from v$session_wait where ...

  9. 在阿里云linux下使用SVN访问VisualSVN出错:SSL handshake failed: SSL error: Key usage violation in certificate has been detected

    Subversion clients receive the following error message when attempting to connect to VisualSVN Serve ...

  10. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇04:碰撞检测》

    4.碰撞检测 碰撞概述: 游戏世界里,游戏对象不能做出如同在真实世界里的物理运动效果.对于大部分游戏来说,都要为其添加物理系统,让其可以模拟真实世界发生的物理运动.但是在这个打飞机游戏Demo中,是用 ...