ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

利用SCCM完成Windows 10 1909 In-Place Upgrade

2021-03-17 11:56:09  阅读:227  来源: 互联网

标签:10 Upgrade Windows 升级 Write Host upgrade


Windows 10 1809的support截至日期在2021年5月11号,没有了support之后,微软将停止提供每个月的Windows Update,将产生安全问题。

对于企业客户来说要及早进行并完成相关的GPO及APP测试,并在此之前推送Windows Upgrade到1909版本以上。
相关的lifecycle信息来自微软。

https://docs.microsoft.com/en-us/lifecycle/products/windows-10-enterprise-and-education

手动升级Windows 10将会给运维带来极大挑战和人力成本,利用客户端管理软件是最好的选择,可以利用SCCM创建application来做升级,以下分享一下大致的方案。

创建1909 升级Application

  1. detection rule 可以用powershell脚本通过wmi来检测系统版本
    利用win32_computeropratingsystem

利用SCCM完成Windows 10 1909 In-Place Upgrade

  1. 具体的升级兼容性检测以及升级处理部分
    获取1909的原版安装ISO文件,解压得到安装文件如下。
    利用SCCM完成Windows 10 1909 In-Place Upgrade

setup是执行升级文件,对于这个执行文件的参数可以从微软官网获取。
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-command-line-options

直接执行升级操作可能带来失败,从而花费大量时间回滚,有一个更好的方法是指定Compat参数先执行升级兼容性检测,检测通过后再执行升级操作,增加成功率,减少失败带来的等待时间。
直接参数如下
"setup.exe" "/Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly"
命令完成后会返回检测结果
如果返回的值为0xC1900210表示没有发现问题,可以继续执行升级操作。
具体的返回值如下
https://docs.microsoft.com/en-us/windows/deployment/upgrade/upgrade-error-codes
利用SCCM完成Windows 10 1909 In-Place Upgrade

用powershell脚本来处理

Write-Host "Validating if Windows 10 1909 Update can be applied"
$ValCode = Start-Process -FilePath "setup.exe" -ArgumentList "/Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly" -Wait -PassThru
$ValCodeHex = [convert]::ToString($ValCode.ExitCode, 16)
Write-Host "Exit Code for Windows 10 Validation: 0x$($ValCodeHex)"
switch ($ValCodeHex) {
    "C1900210" {    Write-Host "No issues found. Proceeding with the update."   }
    "C1900208" {    Write-Host "Compatibility issues found. Exiting the upgrade."; QuitFailure -Code '1900208'}
    "C1900204" { Write-Host "Migration choice not available. Exiting the upgrade."; QuitFailure -Code '1900204' }
    "C1900200" { Write-Host "Does not meet system requirements for Windows 10. Exiting the upgrade."; QuitFailure -Code '1900200' }
    "C190020E" { Write-Host "Insufficient free disk space. Exiting the upgrade."; QuitFailure -Code '190020E' }
    default { Write-Host "Upgrade failed. Exiting the upgrade."; QuitFailure -Code '1' }
}

$ExitCode = Start-Process -FilePath "setup.exe" -ArgumentList '/auto upgrade /quiet /noreboot /showoobe none /DynamicUpdate Disable' -Wait -PassThru

Write-Host "ExitCode of Setup: $($ExitCode.ExitCode)"
  1. 修复SCCM客户端
    升级1909后系统会重建。Net运行库,有一定几率会导致SCCM agent损坏,可以添加一个计划任务调用ccmrepair.exe来修复SCCM,调用脚本执行如下
    Start-Service -Name CcmExec; Start-Sleep -Seconds 5; If((Get-Service -Name CcmExec).Status -ne 'Running'){ & C:\windows\ccm\ccmrepair.exe | out-null}

标签:10,Upgrade,Windows,升级,Write,Host,upgrade
来源: https://blog.51cto.com/sky2133/2662624

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有