场景描述:公司现有一批windowsxp的计算机需要升级到windows7专业版。C盘有很多用户数据,这批计算机也很多,不可能手动一台一台的去备份,我们希望SCCM能自动将用户数据进行备份和还原。SCCM能自动备份和恢复数据,对于管理员来说,可谓一大福音,和以前手动拷贝数据说再见吧。

对于以上案例,我们会用到SCCM用户状态迁移角色。

步骤:1 在SCCM服务器上添加“用户状态迁移角色”

           2 建立USMT程序包

           3 建立任务序列

           4 播发任务

           5 运行任务

接下来,我们一步一步做

第一步 安装用户状态迁移角色

添加这个角色没有什么特别的地方,过程我就不贴了哈。

image

第二步建立一个USMT的程序包

image

image

image

源目录要注意,USMT工具的源目录在AIK安装目录下。注意:USMT目录下有两个X86和AMD64,两个目录都要添加到包里。也就是,源目录应该是:

“c:\program files\windows aik\tools\usmt\”

image

image

一直下一步,直到完成。

image

直接把包更新到分发点,不要添加程序。

image

第三步 建立任务序列

image

image

image

image

image

image

第四步 分发序列

我已经将我的客户端添加到了。xp to win7这个集合了。

image

image

我要把这个序列分发到这个集合

image

我们看看客户端的情况,我分别在客户端的桌面,我的文档,收藏夹都添加了内容,等会儿完成了系统升级后,我们再看看这些内容是否能够还原。

image

系统升级完成后,我们看看SCCM能否把这些东西还原。

image

image

运行任务序列

image

image

image

image

image

image

漫长的等待。。。。。。。

image

再次漫长等待。。。。。。。。。。。。。

image

image

image

image

image

image

安装完了,我们登陆看看,是否有我们用户的数据。

image

image

收藏夹内容也在

image

C盘根目录下我安装补丁的临时文件夹也在

image

我登陆过的用户也在,看来SCCM会把除了windows的文件以外的文件都保存下来。

SCCM的这个功能,让我们IT管理员在升级操作系统的时候,省去了备份数据的麻烦,非常实用。

但是,在做这个实验的过程中,我也遇到了很多的错误。有几个关键步骤必须做:

1 如果你的客户端是windows xp sp3,或者打上了KB947541这个安全补丁。那么你要是用USMT4.0做用户状态迁移的时候,必须给SCCM服务器和客户端都打上KB977203

   详情:http://support.microsoft.com/kb/977203 切记打完补丁后要用ccmcerfix.exe修复一下客户端的证书。这个补丁在执行任务序列之前就要打好,ccmcerfix.exe也要在任务序列运行前运行一次。并且,在任务序列中,安装完操作系统后,安装sccm客户端的那一步也要打上kb977203补丁。不过不是以软件分发的方式,必须在sccm客户端的安装参数中应用补丁。详情见:http://support.microsoft.com/kb/977203,如果你不做这一步,可能收到如下的错误。

严重性    类型    站点代码    日期/时间    系统    组件    消息 ID    描述
错误    里程碑    100    2012/4/24 1:41:00    XPTOWIN7    Task Sequence Engine    11135    任务序列执行引擎无法执行组(还原用户文件和设置)中的操作(请求用户状态存储),错误代码 16389  操作输出: ent.cpp,896) m_ClientInfo.init(), HRESULT=80092004 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,1734) Request to SMP 'SCCM2.CONTOSO.COM' failed with error (Code 0x80092004). Trying next SMP. FALSE, HRESULT=80004005 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,1698) pClientRequestToSMP->Execute(migInfoFromMP.saSMPs), HRESULT=80004005 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,2854) ExecuteRestoreRequestToSMP(migInfoFromMP), HRESULT=80004005 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,2912) ExecuteRestoreRequest(), HRESULT=80004005 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\main.cpp,80) OSDSMPClient finished: 0x00004005 Failed to find client signingcertificate. Code 0x80092004 ClientRequestToSMP::DoRequest failed. error = (0x80092004). Failed to find an SMP that can serve request after trying 4 attempts. ExecuteRestoreRequestToSMP failed (0x80004005). ExecuteRestoreRequest failed (0x80004005).。 操作系统报告错误 2147942428: 打印机缺纸。


 

错误    里程碑    100    2012/4/24 21:04:38    XPTOWIN7    Task Sequence Engine    11135    任务序列执行引擎无法执行组(捕获用户文件和设置)中的操作(请求用户状态存储),错误代码 8196  操作输出: 4A8B26D-2391-4BDF-B2C2-AF172548AA90} has 1 IPv4 address(es). Loading client certificates. ::DecompressBuffer(65536) Decompression (zlib) succeeded: original size 3063, uncompressed size 3251. this->pSigningCert, HRESULT=80092004 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,896) m_ClientInfo.init(), HRESULT=80092004 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,1014) pClientRequestToMP->DoRequest(), HRESULT=80092004 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,2668) ExecuteCaptureRequestToMP(migInfoFromMP), HRESULT=80092004 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\smpclient.cpp,2745) ExecuteCaptureRequest(), HRESULT=80092004 (e:\nts_sms_fre\sms\client\osdeployment\osdsmpclient\main.cpp,72) OSDSMPClient finished: 0x00002004 Failed to find client signing certificate. Code 0x80092004 ClientRequestToMP::DoRequest failed (0x80092004). ExecuteCaptureRequestMP failed (0x80092004). ExecuteCaptureRequest failed (0x80092004).。 操作系统报告错误 2147942428: 打印机缺纸.

2 如果出现下面的错误,可以重启服务器,以解决。

严重性    类型    站点代码    日期/时间    系统    组件    消息 ID    描述
错误    里程碑    100    2012/4/23 17:23:20    XPTOWIN7    Task Sequence Engine    11135    任务序列执行引擎无法执行组(捕获用户文件和设置)中的操作(请求用户状态存储),错误代码 16389  操作输出: 5B8B864710203010001A318301630140603551D25040D300B06092B0601040182376502300906052B0E03021D05000381810068DBFA5751127A8704EC431AAC6D6DBEEEC16C51CF1510F98BDE436BCF1B18C4A4501D52AE06E0CF8F6E1A569D209051961EC022B9A4AC658D9635D3C36ECB928731A849057A37D00AF549F6466EA68A97664B51F5AAA162DFC0220E3E5C20EDE091B4F314FA67C392E6C04FC240FF062480F2DCAF283B5A0D88C312A3AA29E</Reserved2></RequestStateStore> Requesting SMP Root share config information from SCCM2.CONTOSO.COM:80 Received 2887 byte response. Adding \\SCCM2.CONTOSO.COM\SMPSTOREe_8E05CD6D$ to list  Failed to connect to "\\SCCM2.CONTOSO.COM\SMPSTOREe_8E05CD6D$" (53). Request to SMP 'SCCM2.CONTOSO.COM' failed with error (Code 0x80004005). Trying next SMP. OSDSMPClient finished: 0x00004005 Cannot connect to SCCM2.CONTOSO.COM SMP root share ClientRequestToSMP::DoRequest failed. error = (0x80004005). Failed to find an SMP that can serve request after trying 4 attempts. ExecuteCaptureRequestSMP failed (0x80004005). ExecuteCaptureRequest failed (0x80004005).。 操作系统报告错误 2147942428: 打印机缺纸。

以上的方法不仅仅是用于windowsxp 到win7的升级,也用于winxp重新安装,win7重新安装。

这篇文章,讲的是通过登陆用户在操作系统可用的情况下来运行任务序列来恢复或者刷新操作系统,那么,如果我们的操作系统都不能启动了,我们能不能在WINPE环境下或者OFFLINE的情况下来捕获用户设置和文件呢?下一篇,我们一起研究一下。