配置Windows Update,补丁更新
配置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,补丁更新的更多相关文章
- 解决配置Windows Update失败问题
大家都清楚电脑总是需要更新一些补丁,不过,很多系统用户发现更新了补丁之后,开机会出现windows update更新失败的情况,提示“配置Windows Update失败,还原更改,请勿关闭计算机”信 ...
- win7 配置Windows Update 失败,还原更改,无法进入系统
win7 配置Windows Update 失败,还原更改,无法进入系统 win7 系统安装好后,忘记了需要关闭自动更新,某天自动更新补丁安装失败,进入下图状态,无法进入正常系统. 解决方案一:使用+ ...
- 解决配置Windows Update失败,还原更改问题
问题描述 由于配置Windows Update失败,还原更改状态下无法正常关机.只能长按电源键关机后进入WinPE环境. 解决步骤 进入WinPE环境->选择Dism++->选择版本-&g ...
- Windows 8.1 & Windows 10 取消 Windows Update 自动更新硬件驱动
最新文章:Virson's Blog 1.打开控制面板,在搜索框中搜索“设备”一次,检索出相关的设备设置功能,如下图: 2.在检索出的结果中点击“更改设备安装设置”,会弹出设备驱动的更新方式,按照如下 ...
- win7系统 windows update 总是更新失败解决方法:
win7系统 windows update 总是更新失败解决方法: 右键单击桌面“计算机”选择“管理“. 进到“计算机管理“窗口后,展开”服务和应用程序“并双击”服务“,在窗口右侧按照名称找到”Win ...
- Windows 10 家庭版/专业版 彻底关闭windows update自动更新
转载: https://blog.csdn.net/u014162133/article/details/84973426# https://blog.csdn.net/qq_40820862/art ...
- Windows Update 自动更新 设定 被锁(变灰)
估计是McAfee自动更改掉的. 真TM烦人. 方法 1 不过找到了回复方法了: http://www.askvg.com/how-to-change-windows-update-settings- ...
- Windows7 (Win7) 配置Windows Update 时失败 正在还原更改
用WinPE启动后,进入Windows\WinSxS目录,想办法删掉pending.xml和reboot.xml
- 配置windows失败,还原更新,请勿关机
同事叫我帮忙弄一下电脑,开机,出现"配置Windows Update失败,还原更改,请勿关闭计算机",我从来不更新Windows Update,更新都为成功,第一次遇到失败了,不知 ...
随机推荐
- Nginx & AWStats 安装、配置、使用
—— 参考IBM文章:THIS , 不一样的指导顺序 —— 1. awstats分析nginx - access.log,网上资料大部分都是下载,然后配置.官网下载地址: http://awstats ...
- 转载RabbitMQ入门(2)--工作队列
工作队列 (使用Java客户端) 在这第一指南部分,我们写了通过同一命名的队列发送和接受消息.在这一部分,我们将会创建一个工作队列,在多个工作者之间使用分布式时间任务. 工作队列(亦称:任务队列)背后 ...
- Blog CSS
你好 print("你好.") haode
- 【转】话说我打算一天学完object c语法,系列1--------来自书Objective-c程序设计
原文网址:http://blog.csdn.net/zengraoli/article/details/8993466 类型: NSString NSInteger NSLong控制台输出 NSObj ...
- Ejabberd源码解析前奏--概述
一.绪论 Ejabberd是一个用Erlang/OTP写的开源即时通讯服务器,其是跨平台.分布式.容错且基于开放标准的实时通讯系统.Ejabberd是一个功能丰富的XMPP服务器,同时适合小规模 ...
- Cutting Sticks
题意: l长的木棒,给出n个切割点,每切一次的费用为切得木棒的长度,完成切割的最小费用. 分析: 区间dp入门,区间dp的特点,一个大区间的解可以转换成小区间的解组合起来,每个切割点的标号代表边界. ...
- [Tommas] 测试用例覆盖率(三)
三.测试数据的设计 每一个测试思路最终都要转化成具体的数据才能来执行.关于测试数据设计的方法也不外乎那几种,就不再赘述了.此处单就一些经常易犯的错误,提出一些注意点,作为用例数据设计时的参考: 1.尽 ...
- 用javascript 面向对象制作坦克大战(三)
之前,我们完成了坦克的移动和地图的绘制,这次我们来完成碰撞检测和炮弹的发射. 上代码前来张最新的类图: 3. 碰撞检测 前面我们已经完成了坦克的移动和地图的绘制,下面我们开始写碰撞检测. 3. ...
- 【C++对象模型】构造函数语意学之二 拷贝构造函数
关于默认拷贝构造函数,有一点和默认构造函数类似,就是编译器只有在[需要的时候]才去合成默认的拷贝构造函数. 在什么时候才是[需要的时候]呢? 也就是类不展现[bitwise copy semantic ...
- 【转载】epoll的使用
select,poll,epoll简介 select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理.这样所带来的缺点是: 1 单个进程可监视的fd数量被限制 2 需要维 ...