2024年1月19日发(作者:)
D热点IGITCW透视Hot-Point Perspective多硬盘计算机MDT部署中SSD硬盘自动识别何宏伟(国网襄阳市襄州区供电公司,襄阳 441100)摘要:针对多硬盘计算机在安装操作系统时产生的目标位置紊乱问题,探索出一种识别技术。该技术采用将WDS与MDT结合的手段,部署中SSD硬盘自动识别,目标分区自动设置,构建出一套完整的计算机系统部署的解决方案。本套解决方案的识别思想不仅满足NVMe及SSD,也对其他硬盘借口的Windows服务器部署具有同样的参考意义。关键词:windows部署;MDT;WDS;SSD;系统运维doi:10.3969/.1672-7274.2019.11.118中图分类号:TP333 文献标示码:A 文章编码:1672-7274(2019)11-0144-021 研究背景在现有的办公生产环境中计算机通常采用Windows操作系统。目前ssd固态硬盘价格下降,配置有固态硬盘的计算机逐渐增多,很多使用固态硬盘的计算机还配置了大容量的机械硬盘,通常ssd固态硬盘安装操作系统而用机械硬盘存储资料。在Windows系统运维实践中,经常有全新安装和系统故障后重新安装操作系统的需求,大中型企业常采用WDS(Windows自带的部署服务)和MDT(Microsoft Deployment Toolkit)相结合的方案。全新安装操作系统常常会牵涉到硬盘的重新分区,在多硬盘计算机条件下,部署过程经常会出现安装操作系统位置紊乱的问题。在计算机原有机械硬盘存储有资料的情况下,往往会造成灾难性的结果。因此,本文就该问题提出了采用WDS和MDT部署过程中自动识别并选择固态硬盘,正确进行固态硬盘分区并将操作系统按要求安装到固态硬盘的解决方案。2 多硬盘条件下存在的部署问题(1)无法确认安装硬盘。在客户计算机只有一块硬盘时通常将系统安装到硬盘的第一可用分区。而对于存在ssd或者NVMe的双硬盘计算机,将操作系统安装到什么硬盘及分区将成为一个问题,如果我们本打算将系统安装到固态硬盘,但因为不同电脑其固态硬盘对应的diskindex值是有区别的(可能是0,也可能是1),可能会产生将操作系统安装在机械硬盘当中的结果。所以在部署过程中为保证系统的安装位置正确,必须首先正确识别固态硬盘。(2)无法确认安装分区。对于存在双硬盘的计算机,即使选定了安装硬盘,需将操作系统安装到选定硬盘的第一可用分区,但在部署PE状态下拟安装的目标分区可能逻辑分区名为C:,也可能为D:或其他分区号。3 多硬盘条件下的ssd识别Mdt部署首先执行的一个步骤就是收集大量不同源的信息,这些源包括WMI调用和MDT配置文件和,该信息作为变量进行收集和存储,用于整个部署过程的控制,mdt还支持调用外部VBScript脚本作为收集过程的一部分,这个脚本名为UserExit脚本。 Mdt部署序列中有两个相关变量,OSDDiskIndex决定将操作系统安装到哪块硬盘,Osdisk决定安装到哪个分区,WMI调用是部署过程中自动找到两个变量正确值唯一可用的方法。庆幸的是,微软提供了存储管理类,此类名为MSFT_PhysicalDisk,作为存储管理类,有丰富的获取硬盘信息的属性和方法,其bustype属性可识别存储接口总线类型是sas、sata、还是NVMe,其MediaType属性可识别硬盘类型是HDD还是SSD。(1)在外部脚本userexit中Selectdisk函数利用WMI调用收集MSFT_PhysicalDisk信息,获取了SSD的硬盘ID,以及我们需要的OSDDiskIndex值。Set Wmi = GetObject("Winmgmts:.RootMicrosoftWindowsStorage")Set objDisk = ery("SELECT * FROM MSFT_PhysicalDisk") for Each B in objDisk if ype=4 then Selectdisk=Id
end if
next(2) SelectOsdisk(index)函数通过wmi调用先获取选定硬盘的分区信息,再通过此分区信息获取其逻辑分区信息,即获得Osdisk的值。i=0Ldisk=index&",Partition #0"Set Wmi = GetObject("Winmgmts:.rootcimv2")Set objDisk = ery("SELECT * FROM Win32_DiskPartition where diskindex="&index)for Each B in objDiskif ="GPT:Basic Data" or ="Installable File
System" thenLdisk=index&",Partition #"&iexit forend ifi=i+1next
Set objDisk=ery("SELECT * FROM Win32_LogicalDiskToPartition")For Each B In objDiskIf mid(dent,instr(1,dent,"DeviceID",1)+16,15)=Ldisk ThenSelectOsdisk=mid(ent,instr(1,ent ,"DeviceID",1)+10,2)end ifNext4 相关配置注意点UserExit脚本保存位于mdt根下Script目录vbs文件中,这里命名为,其在中引用如下UserExit=DiskIndex=#Selectdisk()#Osdisk=#SelectOsdisk(%OSDDiskIndex%)#由于Mdt生成的PE环境默认不包含存储设备的类,因此,在生成PE时必须在相应平台Features选项卡下勾选Storage
Management Cmdlets。5 结束语本文首先分析了计算机多硬盘条件下操作系统部署(转下页)作者简介:何宏伟,男,土家族,1970年生,湖北咸丰人,工程师,学士,研究方向为计算机与网络运维。
144DIGITCW2019.11


发布评论