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

时间: 2024-12-17 02:33:48

MDT自动获取并生成计算机名的相关文章

两种方法自动获取 grub2-mkpasswd-pbkdf2 生成的密码

一.grub2-mkpasswd-pbkdf2 生成密码过程: grub2-mkpasswd-pbkdf2 输入口令:(需要输入密码)Reenter password: (需要再次输入刚才的密码)PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.8854921E3867A245C7DE1A522FA125FFA4A03FBCD2EF0A2F181353CCD579FCC8A99EAC649C619CBE1F49D6A13414915

C#获取本地计算机名,IP,MAC地址,硬盘ID

using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebPa

关于是用dotnet获取本机IP地址+计算机名的方法

印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使用了这个笨办法. fn getIP_PCname = ( cc = (dotnetclass "System.Net.Dns") oo = cc.GetHostAddresses(cc.GetHostName()) for ip = 1 to oo.count do ( getip = f

Java编程实现获取本机IP和计算机名的功能

import java.net.InetAddress; import java.net.UnknownHostException; public class Test { public static void main(String[] args) { try { InetAddress inetAddress = InetAddress.getLocalHost(); System.out.println("本机IP:" + inetAddress.getHostAddress()

js获取本机mac地址,IP地址,计算机名

<!DOCTYPE HTML> <html> <head> <title>js获取本机mac地址,IP地址,计算机名</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content="MSHTML 6.00.2800.1106" name="

获取本机IP、mac地址、计算机名

python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid >>> def get_mac_address(): mac = uuid.UUID(int = uuid.getnode()).hex[-12:] return ':'.join([mac[e:e+2] for e in range(0,11,2)]) >>> get_m

C# 获取本机CPU序列号,MAC地址,硬盘ID,本机IP地址,计算机名,物理内存,PC类型

首先引入服务 然后 调用 本文转载自http://blog.sina.com.cn/s/blog_7eeb43210101hf7f.html public class Computer { public static string CpuID; //1.cpu序列号 public static string MacAddress; //2.mac序列号 public static string DiskID; //3.硬盘id public static string IpAddress; //

[python]获取计算机名

方法一: import ctypes import os #获取计算机名 def getname(): pcName = ctypes.c_char_p(''.encode('utf-8')) pcSize = 16 pcName = ctypes.cast(pcName, ctypes.c_char_p) try: ctypes.windll.kernel32.GetComputerNameA(pcName, ctypes.byref(ctypes.c_int(pcSize))) except

[Java]通过java获取计算机名

通过java获取计算机名 String hostname = "Unknown"; try { InetAddress addr; addr = InetAddress.getLocalHost(); hostname = addr.getHostName(); } catch (UnknownHostException ex) { System.out.println("Hostname can not be resolved"); } logger.info(&