SCCM ile tüm client'lardan LocalAdmin bilgilerini raporlamak (2.Bölüm)

İlk blog post'umda SMS_DEF.mof ve CONFIGURATION.mof'a script ekleyerek Windows XP client'lardan Local Admin bilgisini nasıl alındığını göstermiştim. 1. Bölümün Linki

Bu blog'ta ilk işlemleri tamamladıktan sonra tüm client'lar için geçerli olan yöntemi (script'i) gösteriyor olacağım. İlk blogu bunun için tekrar bir gözden geçirmenizi öneriyorum. Orda yaptıklarımız işlemler bir raporlama script'i SCCM server'de SMS_DEF.mof'a eklemek ve ondan sonra yine server üzerinde CONFIGURATION.mof'a client tarafında Win32_LocalAdmin WMI class'ı oluşturmak için bir script daha eklemekti.

Bu yöntem ile sadece Windows XP client'lardan Local Admin bilgisini çekebiliyorduk. Başka işletim sistemleri için script içinde geçen Win32_Group.Domain='BUILTIN' yerine makina'nın Netbios adini getirmek gerekiyor fakat bunu WMI ile dinamik bir şekilde yapmak mümkün değil yada çok zor. Ancak client üzerinde çalştıracağımız bir script ile yapmak mümkün.

Neticede yapılacak adımlar bunlar:

1. İlk blog'taki SMS_DEF.mof için belirtilmiş değişiklikleri yapın

2. İlk blog'taki CONFIGURATION.mof taki değişikliklerin yerine aşağıdaki script'i bir notepad'e kopyalayın ve localadmin.vbs olarak kaydedin.

CONFIGURATION.mof'a ekleme yaptıysanız onları lütfen kaldırın ve tekrar compile edin.

 

On Error Resume Next
'1 Create temporary .mof file in Temp folder
'2 mofcomp the created .mof file
'Kudos to Mike Seely-->https://www.myitforum.com/forums/Local_Admins_MOF/m_179546/tm.htm
'and of course Ward Lange, and report structure from Gavin Ross & Claudio Dhondt-->
'https://www.myitforum.com/forums/m_149305/tm.htm#149662
'6/8/08 Sherry Kissinger
Set fso = CreateObject("Scripting.FileSystemObject")
Set nwo = CreateObject("Wscript.Network")
Set sho = CreateObject("Wscript.Shell")
TempFolder = sho.ExpandEnvironmentStrings("%temp%")
strWindir = sho.ExpandEnvironmentStrings("%windir%")
Set f1 = fso.CreateTextFile(TempFolder & "\SMSLocalAdmin.mof",True)
f1.WriteLine("#pragma namespace ("&Chr(34)&"\\\\.\\root\\cimv2"&chr(34)&")")
f1.WriteLine("[union, ViewSources{"&chr(34)&"Select * from Win32_GroupUser where " &_
"GroupComponent=\"&chr(34)&"Win32_Group.Domain='"&nwo.ComputerName&_
"',Name='Administrators'\"&Chr(34)&Chr(34)&_
"},ViewSpaces{"&Chr(34)&"\\\\.\\root\\CIMV2"&Chr(34)&"}, Dynamic : ToInstance, provider("&_
Chr(34)&"MS_VIEW_INSTANCE_PROVIDER"&CHR(34)&")]")
f1.WriteLine("class Win32_LocalAdmins")
f1.WriteLine("{")
f1.WriteLine("[PropertySources("&chr(34)&"PartComponent"&chr(34)&"), key] Win32_Account ref AccountName;")
f1.WriteLine("[PropertySources("&chr(34)&"GroupComponent"&chr(34)&"), key] Win32_Group ref GroupName;")
f1.WriteLine("};")
f1.Close
sho.Run strWindir & "\system32\wbem\mofcomp " & TempFolder & "\SMSLocalAdmin.mof",0,True
Set f1 = fso.getFile(TempFolder & "\smslocaladmin.mof")
f1.Delete
wscript.quit 

3. Bu script'i bir Software Distribution paketi ile client'larınızda çalıştırın.

4. Client'lardan gelen HINV ile LocalAdmin bilgilerine ulaşabilirsiniz. (Örnek rapor query'si için yine ilk bloguma bakabilirsiniz)

 

REFERANS: Report on Local Administrators Group membership - updated

Altug ATAHAN