Chúng tôi thực hiện điều này thông qua tập lệnh đăng nhập để cập nhật mô tả của đối tượng máy tính trong AD.
Bạn cần thực hiện một ủy quyền kiểm soát tùy chỉnh để cho phép "Người dùng được xác thực" viết thuộc tính mô tả của các đối tượng máy tính trong miền / s.
Khi đã xong, tất cả những gì bạn cần là một tập lệnh tạo ra bất kỳ thông tin nào bạn muốn và ghi các thuộc tính vào đối tượng máy tính. Tập lệnh này sau đó được gán làm tập lệnh đăng nhập thông qua đối tượng Chính sách nhóm được liên kết với tên miền.
Chúng tôi đặt dấu thời gian, tên người dùng, IP (s) trong trường mô tả. Dấu thời gian xuất hiện đầu tiên vì nó giúp dễ dàng nhìn thấy nhanh các đối tượng máy tính "cũ" bằng cách sắp xếp trên trường mô tả.
Đây là kịch bản tôi đã viết cho điều này nếu bạn muốn sử dụng nó làm điểm bắt đầu:
On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo") 'Bind to AD
Set objNet = CreateObject("WScript.Network")
strCompDN = objSysInfo.ComputerName 'DN for computer, e.g. "CN=VISTAWORKSTATION,OU=Child OU Name,OU=Parent OU Name,DC=domain,DC=com"
Set objComp = GetObject("LDAP://" & strCompDN) 'IADsComputer object
strUserDN = objSysInfo.UserName 'DN for user, e.g. "CN=John Smith,OU=Child OU Name,OU=Parent OU Name,DC=domain,DC=com"
Set objUser = GetObject("LDAP://" & strUserDN) 'IADsUser object
strUsrLogin = LCase(objNet.UserName)
strNow = Now
strDateStamp = DatePart("yyyy",strNow) & _
Right("0" & DatePart("m",strNow), 2) & _
Right("0" & DatePart("d",strNow), 2) & _
"@" & _
Right("0" & DatePart("h",strNow), 2) & _
Right("0" & DatePart("n",strNow), 2)
'RegExp object used to perform a simple match on IP address
Set objRE = New RegExp
objRE.IgnoreCase = True
'Note this regexp pattern isn't "correct" for matching an IPv4 address properly, but since WMI will return an
'array of IP addresses, this is sufficient to distinguish IPv4 vs IPv6
objRE.Pattern = "^\d+\.\d+\.\d+\.\d+$"
strIP = ""
'Connect to WMI and retreive all network adapters
Set objWMI = GetObject("winmgmts:")
Set colNICs = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
'Get the IP(s) assigned to whichever network adapter has our default gateway
If colNICs.Count > 0 Then
For Each objNIC in colNICs
If IsArray(objNIC.DefaultIPGateway) Then
arrIP = objNIC.IPAddress
For i = 0 To UBound(arrip)
If objRE.Test(arrIP(i)) Then strIP = strIP & " " & arrIP(i)
Next
strMAC = objNIC.MACAddress
End If
Next
End If
strIP = Trim(strIP)
objComp.Description = strDateStamp & " " & strUsrLogin & " " & strIP
objComp.Put "extensionAttribute1", strUsrLogin
objComp.Put "extensionAttribute2", strIP
objComp.Put "extensionAttribute3", strMAC
objComp.SetInfo