前言

在我们通过MDT工具或SCCM系统给客户机部属操作系统时, 常遇到各种各样的需求。有些需求很容易实现, 如自动加域,格式化硬盘,预置管理员密码等。有些功能可能就稍微麻烦一些。 比如,在部署操作系统时, 要求客户能自定义输入计算机名称。 这个要求在MDT的环境下, 很容易实现,但是在SCCM的环境下, 就需要做额外的设置和脚本等, 可以做到在系统部署时提示客户输入计算机名。 通过SCCM和MDT的集成, 也能很好的解决这个问题。

客户需求:

现有一个情景,客户是使用的SCCM2012,管理的机器为学校范围的所有机器, 包括各个教研室老师的电脑, 各个机房的电脑和学校学生的电脑。 对于学生的电脑, 暂不做严格管控, 但是对于各个教研室的电脑和不同机房中的计算机, 要求以所在单位的名称为基础, 在自动部署操作系统时, 按给定的计算机名称自动命名计算机名。 IT人员也有限,无法一台一台去输入计算机名。 例如:

IT机房1

机器1号

IT-Lab01-01

机器2号

IT-Lab01-02

机器3号

IT-Lab01-03

IT机房2

机器1号

IT-Lab02-01

机器1号

IT-Lab02-02

机器1号

IT-Lab02-03

由于IT人员的有限, 并且IT机房这种环境, 不太可能要求IT人员来一台一台的输入计算机名称。 但是为了实现这个目的,我们需要一些信息来做匹配。 在这里我们尝试使用计算机的MAC 地址来做匹配。 我们制作一张对应表,一个MAC地址对应一个计算机名称, 并保存为CSV文件。 但是难点来了, 如何让SCCM在部署系统的过程中, 调用这个CSV文件并依照这个表来自动命名计算机? 脚本看来能解决这个问题。 但是并不是每个IT人员都擅长脚本, 且这个脚本的执行环境是SCCM的 Task Sequence 中, 需要大量的时间和精力来测试完善。 并不是一个简单的工程, 工作量设置会大大超过部署操作系统所需要的时间。

在这里我想到了SCCM中的导入计算机功能,刚好可以完美的解决这个问题。真是山重水复疑无路,柳暗花明又一村。 SCCM2012 中的导入计算机功能就是让我们预先导入一部分计算机信息, 让SCCM系统预先“认识”这个计算机,当成已有的计算机来管理。 在这种情况下, 如果计算机信息已经有了, 如MAC地址和计算机名称, 那么这个计算机在SCCM中就是唯一的了。 我们可以对这个计算机所在的集合部署操作系统,操作系统在部署过程中, 把自动根据已有的信息,自动命名计算机为对应的名称。 这是因为操作系统部署的对象不再是未知的计算机, 而是“我们预置的已知的计算机”. 通过这样操作, 这些计算机不管在何时要重装系统都会回到我们预置的状态。

测试环境:

测试域: greentest.info

CMSRV1------SCCM 中心管理站点, 站点代码A01

CMSRV2------SCCM 主站点, 站点代码P01

CMSRv3------SCCM 辅助站点

测试的操作系统镜像为Windows 7

SCCM的管理账户为: sccmadmin

SCCM客户端安装和部署时使用的账户为: clientinstall

为了方便测试: sccmadmin 和 clientinstall 两个测试都属于Domain Admins 管理员组。

测试目标: 计算机名最终需要被命名为: IT-Lab2-01

此处省略安装部署SCCM2012 环境的步骤, SCCM已经做了PXE的启动等准备。大致的步骤分为以下7步:

1. 计算机信息收集

2. 计算机信息导入

3. 创建计算机集合

4. 导入并创建Window 7 的镜像

5. 创建Windows 7 的任务序列, 并部署到计算机集合

6. 测试操作系统的部署

7. 验证部署设置和计算机信息

第一:收集计算机信息。

用来确定计算机身份的信息可以是: MAC 地址, 或者计算的GUID. MAC比较好获取。 GUID信息可以通过计算机在PXE启动阶段获取。 如下图, 我们在Hyper-V 中创建了一台新的计算机 Test-OSD,MAC地址可以在这个虚拟机的设置里看到。

如上两图, 该测试计算机(Test-OSD)已经设置为了从网络启动(PXE), 并且网卡地址(MAC)为:00:15:5D:B2:82:30. 网络配置为SCCM 主站点所属的网络: SysCtr2

启动这台虚拟机,我们可以获取这个机器的GUID: A77D12C2-22D1-4537-A529-DD84DF72A56F。

注意: GUID 和MAC 地址是至少有一项。

第二:导入计算机信息。

这里我们需要创建OSD.csv文件, 分三列填入: 计算机名,GUID, MAC 地址。 如下:

打开SCCM2012 控制台, 点击 Import Computer Information(导入计算机信息)

选择 Import computers using a file. 如果只是某一台计算机, 我们可以选择第二项: Import single computer. 此处为了测试导入csv 文件, 我们选择第一个

导入我们创建的测试OSD.csv 文件

此处, 我们可以看到Import Computer Information 向导工具已经根据CSV 文件, 认出来了计算机名, GUID 和 MAC地址等信息等类别。 如果CSV文件中的信息与默认不相符, 我们可以在这里手动调整每列所对应的信息的类别。 例如我们把MAC地址放在了第二列, 把计算机名放在了第三列等。

点击Next , 会显示导入的具体信息。 此处我们做测试, 只有一台的信息, 所就只显示一个。

接下来会提示把这些计算机加入到某个集合或默认放在所有计算机集合(All System)里面. 我们并没有提前创建计算机集合, 这里选择默认。

总结前面的设置和导入信息:

点击Next , 导入的过程很快。 下面是导入操作成功的提示。

此处, 计算机信息导入成功。

我们回到SCCM2012 的控制台, 可以看到新的计算机已经被列在里面了。 但是这个计算机其实还没有部署, 还在裸机状态。在SCCM中, 计算机IT-Lab02-01, 客户端的状态是No, 活动状态没有信息。下面的计算机详细信息也是空的。

第三:创建计算机集合。

我们在上面的步骤中, 成功的添加了计算机 IT-Lab02-01的信息到SCCM中。 下面, 我们创建一个计算机集合: IT-Lab02, 代表我们测试中的IT机房.

打开SCCM2012 的控制台, 如图所示, 右键点击 Device Collections(设备集合), 选择 Create Device Collection(创建设备集合), 然后输入集合名称: IT-Lab02.

因为后面准备直接把相对应的计算机IT-Lab02-01添加到这个集合,所以这里不选任何的添加规则,并收到如下的警告。 实际环境中, 推荐这样操作。

再次确认信息, 一路Next 完成操作。

完成后, 可以在SCCM控制台—设备集合中看到新创建的设备集合:IT-Lab02. 客户端成员数量是0.

如下图所示, 在设备中选中我们导入的计算机: IT-Lab02-01, 右键选择 Add Selected Items(添加选择项), 然后选择 Add Selected Items to Existing Device Collection(添加选择项到现在的设备集合)。

添加到前面创建的设备集合:IT-Lab02

等一会儿, 系统后台完成操作后, 我们可以查看设备集合IT-Lab02的状态和成员, 可以看到计算机IT-Lab02-01 已经出现在集合IT-Lab02里面了:

到此, 创建集合过程全部结束。

第四:导入并创建Windows 7 的镜像。

此处, 便于测试, 我们已经创建好了一个Windows 7 32bit 的镜像, 如下图所示:

已经成功把这个镜像分发到CMSRV2 和CMSRV3两个分发点上了

第五:创建Windows 7 的任务序列, 并部署到计算机集合。

如图, 右键点击 Task Sequence (任务序列), 选择: Create Task Sequence(创建任务序列)

依照下面的步骤创建任务序列

注意: 确认把boot p_w_picpaths 分发到相对应的分发点上。

设定自动加入域greentest.info, 使用账户为 clientinstall。 加入到的OU是Computers, 也可以不填(计算机加入域时,默认OU是Computers)。

默认会安装SCCM的客户端程序包。

因为是全新安装, 所以不需要任何的捕捉设置, 全部取消选择。

为了加速测试, 我们这里不选择安装更新。 实际环境, 可以考虑安装更新。

在安装部署程序(已经在SCCM系统中部署过的程序), 选择了7-Zip 这个软件, 以便部署完成后验证效果。

确认设置, 然后Next.

创建Windows 7 32Bit的任务序列执行完毕。

SCCM控制台里也可以看到我们创建的Windows 7 任务序列。 如果要调整任务序列, 加入一些更高级的设置等, 可以选择编辑这个任务序列, 添加, 删除或更改里面的步骤。在此, 我们不做更改。

右键点击Windows 7 32Bit 任务序列, 选择Deploy(分发)

下面一步至关重要。 我们需要把这个任务序列部署给集合 IT-Lab02, 而不是像已往一样部署给未知计算机集合。

类型选为Available(可选), 确保选的方式里有PXE 这一项。

其他选项默认, 一路Next, 直到完成。

至此, 在SCCM上的部署操作全部完成。

第六:测试操作系统的部署。

我们打开虚拟机Test-OSD, 启动。 它会从PXE处获取引导信息。 如下:

按F12 键,从PXE启动, 加载WinPE 的镜像进行引导。

由于在PXE设置里取消了密码设置, 所以这里的密码框会是灰的, 默认可以进入下一步

选择部署的Window 7 32 Bit 这个任务

任务序列开始格式化磁盘

从分发点加载操作系统镜像到本地

应用操作系统镜像到本地磁盘

加载相对应的驱动

应用计算机设置

加载SCCM客户端的安装文件

任务序列执行完毕, 系统重启

系统启动开始初始化

由于我们之前在任务序列里没有输入相对应的key, 所以这里会跳出提示输入key, 需要人工干预, 选择跳过。

初始化配置并且安装配置SCCM的客户端

安装预置的软件7-Zip

系统安装部署完成,

第七:验证部署设置和计算机信息。

最后, 我们在这台测试机上登录域账户 user1. 查看当前的系统信息。 默认域已经为Greentest了, 说明机器已经成功加入到域greentest.

查看系统信息, 我们可以看到计算机名为: IT-Lab02-01. 说明我的部署成功, 客户机器基于我们的配置, 成功的配置了计算机名。

同时, 在SCCM控制台中, 我们可以看到这台计算机的客户端状态是: Yes。 另外, 客户端的活动状态也是活动的。

至此, 我们的整个部署完成。

总结

通过以上的方式, 我们在有类似需求的情景下, 可以大大加速操作系统的部署, 简化IT人员的工作量。 我们只需要在项目前期把所有的计算机信息收集一下, 例如只收集MAC地址和计算机名称, 做成CSV文件即可。 在部署时, 不需要编写脚本, 也不需要和MDT做集成,对环境的要求也相对简单。

南阳

2015.08.28

转载于:https://blog.51cto.com/yinanyang/1689443

利用SCCM2012中的导入计算机功能来实现定制化的操作系统部署相关推荐

  1. vue项目中动态创建模块以满足客户定制化需求的解决方案

    前端项目中很多时候会遇到这样的业务需求: 所有的客户都有共同的一些业务需求,即基础需求 基础需求需要根据业务发展进行升级 在共同需求的基础上,每个客户又有不同的需求(客制化) 如果只是一两个客户还好, ...

  2. [Django]网页中利用ajax实现批量导入数据功能

    url.py代码: url(r'^workimport/$', 'keywork.views.import_keywork', name='import_keywork') view.py代码: fr ...

  3. 在若依项目中添加导入excel功能

    无论是电子商务网站,还是办公网站,都免不了要把一些excel导入到数据库中的功能,若依已经为此需求提供了很不错的封装与扩展. 前提: 首先,你需要建一张表,来存储你要导入的数据.本例中表名及实例名为: ...

  4. 若依项目中添加导入excel功能

    controller层 //參考地址:https://blog.csdn.net/weixin_45853881/article/details/109782444 /*** 导入*/ @Requir ...

  5. Kubernetes API Aggregation在 Master 的 API Server 中启用 API 聚合功能注册自定义 APIService 资源实现和部署自定义的 API Serv

    如需转载请标注内容地址为: https://wiki.shileizcc.com/confluence/display/KUB/Kube Kubernetes API Extension Kubern ...

  6. OutLook 2010 (Bata) 中的邮件导出功能

    2010年4月22日,MSDN 用户可以通过订阅下载正式版本的Office 2010.首发语言中包括简体中文版.其中产品包括:Office 2010 Professional Plus,Project ...

  7. 利用微波技术,亚瑟士要为用户打造独一无二定制化跑鞋

    相较于3D打印造鞋技术,利用微波技术制造一双鞋只要15秒钟的时间,极大的节省了时间. 近日,日本品牌 ASICS(亚瑟士)宣布他们正在利用微波技术快速造鞋,为用户定制最合适他们的鞋底,打造独一无二的定 ...

  8. ASP中利用OWC控件实现图表功能详解[zz]

    ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...

  9. easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能

    Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...

最新文章

  1. CentOS6.9 ARM虚拟机扩容系统磁盘
  2. 组建Livebos超级快速开发平台学习研讨QQ群 !
  3. BZOJ-1010 玩具装箱toy (斜率优化)
  4. python流程控制语法_005 Python语法之流程控制
  5. BIND_MISMATCH导致过多VERSION COUNT的问题
  6. 快速手动替换 Windows 7 系统字体
  7. Android注解支持(Support Annotations)
  8. ibatis动态的传入表名、字段名
  9. 计算机网络实验二 VLAN间路由
  10. 哪类人适合学软件测试?零基础能学测试吗?
  11. SpringBoot自定义starter
  12. 【python 生成自己的二维码】推广二维码带log图片
  13. Laravel下用户权限系统 的解决方案Zizaco/Entrust
  14. Android 刘海屏 适配
  15. 期中复习——题型总结
  16. php如何每三位逗号分开,PHP 数字格式化,数字每三位加逗号的简单示例
  17. 输入学生的学习成绩,学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
  18. php 时间微秒,PHP中使用微秒计算脚本执行时间例子
  19. Integer源码详解
  20. 麦马计算机专业对化学的要求,麦克马斯特大学有哪些专业处于世界顶尖水平?...

热门文章

  1. wxpython开发实例_Python中使用wxPython开发的一个简易笔记本程序实例
  2. xfce上安装mysql_在Fedora 33/32系统上安装PostgreSQL 13数据库的说明
  3. python递归查找值返回_python – 从树递归中返回值列表
  4. mysql sql时间比较_mysql和sql时间 字段比较大小的问题
  5. php怎样空格分开输入三个数,php函数在每一空行拆分一个数组?
  6. VB 屏幕融化超级恶搞程序代码
  7. 获取对象的接口信息(方法/属性/事件)(VB6代码)
  8. VB中什么是类,类模块有什么作用
  9. 国防科大登顶SQuAD 2.0排行榜,机器阅读也要“不知为不知”
  10. 英国莽汉司机认罪:放任特斯拉自动驾驶,自己躺在副驾悠哉悠哉