配置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. noip2002提高组题解

    再次280滚粗.今天早上有点事情,所以做题的时候一直心不在焉,应该是三天以来状态最差的一次,所以这个分数也还算满意了.状态真的太重要了. 第一题:均分纸牌 贪心.(昨天看BYVoid的noip2001 ...

  2. 【转】Android 如何在Eclipse中查看Android API源码 及 support包源码

    原文网址:http://blog.csdn.net/vipzjyno1/article/details/22954775 当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都 ...

  3. android学习笔记六

    Android中Activity的Intent大全 Api Level 3: (SDK 1.5) android.intent.action.ALL_APPS android.intent.actio ...

  4. win10 enterprise 10240激活:

    win10 enterprise 10240激活: 以管理员命令:slmgr /upkslmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43slmgr /skms kms.x ...

  5. Hadoop中的InputFormat解析

    1.InputFormat InputFormat是Hadoop平台上Mapreduce输入的规范,仅有两个抽象方法. List<InputSplit> getSplits(), 获取由输 ...

  6. js代码大全(里面啥都有)

    事件源对象event.srcElement.tagNameevent.srcElement.type 捕获释放event.srcElement.setCapture();  event.srcElem ...

  7. void、void*以及NULL

    void.void*以及NULL 写在前面 在使用C++的过程中,void和NULL用到的频率挺高的,但是从来没有去探索过这两个关键字的联系和区别,也没有对它们做更多的探索.对于void*,说实话,实 ...

  8. 用matlab绘制幂函数

    用matlab绘制幂函数 下周轮到我做论文汇报了,刚好前两天看了网格水印的文章,就决定汇报前两天看到的那篇论文了.在准备ppt的过程中,绘制了一些幂函数,感觉matlab真的是很强大啊,可以绘制各种曲 ...

  9. 通过简单的Linux内核启动程序代码窥探操作系统的启动原理

    作者:吴乐  山东师范大学 <Linux内核分析> 孟宁 MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.程序设计与分析 ...

  10. hive-mysql安装配置

    默认情况下,hive的元数据信息存储在内置的Derby数据中.Facebook将hive元数据存储在关系数据库 1.安装好mysql ,sudo apt-get install mysql-serve ...