Blog

Active Directory Bilgisayar Hesaplarının Açıklama Alanının VBScript ve GPO Yardımıyla Otomatik Doldurulması

Active Directory ‘de objelerin açıklama kısımlarının olduğunu fark etmişsinizdir. Bir çok sistem yöneticisi bu alanı aktif olarak kullanmıyor. Bir Visual Basic Scripti ve Group Policy Objesi yardımıyla bu alanı daha işlevsel kullanmamız mümkün. Mesela bu alana hangi bilgisayarda en son hangi kullanıcı oturum açmış, son logon zamanı neymiş, bilgisayar marka ve modeli, seri numarası, işletim sistemi bilgilerini otomatik olarak yazdırabiliriz.

Gelelim nasıl yapacağımıza, öncelikle aşağıdaki kodu kopyalayıp notepad++ içine yapıştırın. Özellikle notepad++ diyorum çünkü notepad kullanırsanız kaydettiğiniz scriptte bazen kod dizimi hataları alabilirsiniz (Tecrübe ile sabit). Notepad++ uygun formatta kaydetmenize yardımcı olacaktır.

On Error Resume Next

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colcomputersystem = objWMIService.ExecQuery("Select * from Win32_computersystem")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")
For each objcomputersystem in colcomputersystem
Getcomputersystem = objcomputersystem.Model
GetComputerManufacturer = objcomputersystem.Manufacturer
Next
For each objBIOS in colBIOS
GetSerialNumber = objBIOS.SerialNumber
Next
Dim objSysInfo, objUser
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)
Dim sSiteName : sSiteName = objSysInfo.SiteName
If Err Then
	sSiteName = "Unknown"
	Err.Clear
End If
 
if LCase(GetComputerManufacturer)="lenovo" then
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct")
For Each objItem in colItems
strModel = "Lenovo " & objItem.Version
Exit For
Next
Getcomputersystem = strModel & " (" & Getcomputersystem & ")"
end if
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") 
For each objOS in colOSes
GetOS = objOS.caption
GetArch = objOS.OSArchitecture
Next
strMessage = objUser.displayName & " - Logon: " & Date & " - " & Left(Time,5) & " /  Model: " & Getcomputersystem & " / Serial: " & GetSerialNumber & " / OS: " & GetOS & " - " & GetArch
objComputer.Description = strMessage
objComputer.SetInfo

Sonra dosyayı istediğimiz bir isimle masaüstümüze kaydediyoruz. Örneğin ben WriteComputerDesc.vbs olarak kaydettim.

Şimdi Active Directory tarafına dönüyoruz. Oturum açan kullanıcının bilgisayarında otomatik olarak çalışacak bu scriptin Active Directory ‘de bilgisayar açıklamasına yazabilmesi için Authenticated Users grubu için Write Description atribute’une yazma yetkisi veriyoruz. Bunu yapmak için sırayla;

  1. Active Directory Users and Computers ‘ı açıyoruz.
  2. View menüsünden Advanced Features seçeneğini aktif ediyoruz.
  3. Domain ‘e sağ tıklayarak Properties ‘ı açıyoruz.
  4. Security sekmesinden Advanced butonuna tıklıyoruz.
  5. Add butonuna tıklakarak Authenticated Users yazıyoruz ve OK ‘e tıklıyoruz.
  6. Açılan pencereden Applies to: açılır listesinden Descendant Computer Objects ‘i ve ardından Write Description seçeneğini seçiyoruz.

Bundan sonra tek yapmamız gereken oluşturduğumuz scripti Group Policy ile dağıtmak. Bunun için Group Policy Management konsolunu açıyoruz. Ve yeni bir policy oluşturarak düzenliyoruz. Daha sonra aşağıdaki yolu takip ederek Logon scriptimizi çalıştıracağımız bölüme ulaşıyoruz.

User configuration > Policies > Windows Settings > Scripts > Logon

Sırayla Add ve Browse‘a tıklayarak oluşturduğumuz scripti Copy-Paste yöntemi ile açılan pencerenin içine yapıştırıyoruz ve seçip açıyoruz.

Scripti eklediğimize göre OK butonu ile yaptığımız işlemi kaydedip, Group Policy Editor ‘ü kapatıp Group Policy Management ekranına geri dönüyoruz.

Oluşturduğumuz Policy’i kullanıcıların bulunduğu OU’ya linkleyerek işlemi tamamlıyoruz.

Kullanıcılar Group Policy güncellemelerini aldıktan sonra Active Directory Users and Computer ‘daki bilgisayarlarınızın açıklaması aşağıdaki gibi görünecektir.

Bu yazımızda Active Directory ‘deki bilgisayar açıklama alanlarının VBScript & GPO yardımıyla otomatik olarak nasıl doldurulabileceğini göstermiş olduk. Umarım faydalı bir yazı olmuştur. Bir sonraki yazımızda görüşmek dileğiyle.

İlgili Makaleler

6 Yorum

    1. Domain controller üzerinde sadece computer description ‘ı için Write yetkisi veriyoruz.
      Daha spesifik hale getirmek için belirli bir OU’ya verilebililir ya da AD’de security grubu oluşturularak Authenticated users yerine o grubuna ekli userlara yazma yetkisi verilebilir. Fakat iki durum da da ben ciddi bir güvenlik riski oluşturmayacağını düşünüyorum. Çünkü ilgili attribute dışında başka bir şeye yazma yetkisi vermiyoruz. Tabi hiç bir şeyin tam anlamıyla güvenli olmadığını da unutmamak lazım.
      Güvenlik Uzmanı hocalarım belki daha doğru yorum yapabilirler.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu