MDT自动获取并生成计算机名

公司使用微软的MDT来部署系统,默认MDT在每次部署系统时会自动生成一个随机名字,因为公司是域环境并有一套资产管理系统记录序列号,计算机名,型号,资产号及资产Owner信息,每次手动去查询很不方便,想到一个方法来通过脚本自动识别计算机名


大致的构想如下


  1. 通过资产系统的SQL数据库定期生成CSV文件并保存在MDT路径

  2. 通过VBS读取CSV文件,通过WMI来查询所部署机器的序列号

  3. 通过VBS来比对本机序列号,查询CSV库,返回对应的计算机名并赋值


有了思路就开始实施


MDT系统时通过DeployWiz_ComputerName.vbs这个文件来处理计算机名的,对该文件做如下更改即可

z:\Tools-Scripts\assets.csv为CSV文件所在路径,Z:为MDT服务器端目录的网络挂在盘符。



Option Explicit


dim SerialNum,os_pc_name,objWMIService,colItems,objItem

Dim fso, radfile, MyFile, SearchString, MyPos,tempdata,fileobj   ', username, SearchChar



os_pc_name=""


Set objWMIService = GetObject("winmgmts://./root/cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS", , 48)

For Each objItem In colItems

      SerialNum = objItem.SerialNumber

Next



Set fso = CreateObject("Scripting.FileSystemObject")


If (fso.FileExists("z:\Tools-Scripts\assets.csv")) Then 

radfile="z:\Tools-Scripts\assets.csv"

end if


If (fso.FileExists("z:\mdt\Tools-Scripts\assets.csv")) Then 

radfile="z:\mdt\Tools-Scripts\assets.csv"

end if


'  Set MyFile= fso.OpenTextFile(radfile, 1 , TRUE)


If (fso.FileExists(radFile)) Then 

 Set fileObj = fso.GetFile(radfile)

 Set MyFile= fileobj.OpenAsTextStream(1,-2)



 Do While MyFile.AtEndOfLine <> True 

    SearchString=MyFile.ReadLine

     

    MyPos = Instr(SearchString, SerialNum)


    if MyPos > 0 then

         tempdata=split(SearchString,",")

         os_pc_name=trim(tempdata(0))

oEnvironment.Item("OSDComputerName") = os_pc_name   ' added to set ComputerName  ******************* 


    end if 


 loop

 MyFile.Close

end if


本文出自 “笑傲风云” 博客,谢绝转载!

你可能感兴趣的:(MDT,批量部署系统,自动识别计算机名)