Bunu, bilgisayar nesnesinin AD'deki açıklamasını güncelleyen oturum açma komut dosyası ile yapıyoruz.
"Kimliği Doğrulanmış Kullanıcılar" ın bilgisayar nesnelerinin açıklama özelliğini etki alanlarına / s'larına yazmasına izin vermek için özel bir denetim temsilcisi seçmeniz gerekir.
Bu yapıldıktan sonra, tek ihtiyacınız olan, istediğiniz bilgiyi üreten ve özellikleri bilgisayar nesnesine yazan bir betiktir. Bu komut dosyası daha sonra, etki alanına bağlı bir Grup İlkesi nesnesi aracılığıyla bir giriş komut dosyası olarak atanır.
Açıklama alanına bir zaman damgası, kullanıcı adı, IP (ler) koyduk. Zaman damgası önce gelir, çünkü açıklama alanını sıralayarak "eski" bilgisayar nesnelerini hızlıca görmeyi kolaylaştırır.
İşte başlangıç noktası olarak kullanmak istiyorsanız, bunun için yazdığım senaryo:
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