Zbierałem się do napisania artykułu, a wyszło jak zwykle Puszczam oczko

Więc szybka notka na blogu:

SCCM za pomocą Hardware Inventory potrafi zbierać informacje nie tylko o sprzęcie, ale o wszystkim co mamy zapisane w WMI. Szczegółowo jest to opisane na MyITForum – http://www.myitforum.com/myitwiki/SCCMINV.ashx 

Ostatnio trafił mi się przypadek – zbierz info o wszystkich profilach użytkowników i ich ścieżkach.

Najpierw trzeba wyciągnąć info z kluczy rejestru HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

Więc do pliku configuration.mof dodajemy na końcu sekcję:

#pragma namespace("\\.\root\CIMV2")

#pragma deleteclass("Local_SID_List",NOFAIL)

[dynamic,provider("RegProv"),ClassContext("Local|HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList")]

Class Local_SID_List

{

  [key]   string KeyName;

  [PropertyContext("ProfileImagePath")]  String ProfileImagePath;

};

Dzięki temu na każdym komputerze z zainstalowanym agentem SCCM-a w rootcimv2 stworzy się klasa Local_SID_List, która automatycznie będzie się wypełniać kluczami rejestru. Dzięki temu mamy parę: SID <-> profil

Teraz trzeba połączyć SID <-> User. Żeby to osiągnąć dodajemy do tego samego pliku następną sekcję:

#pragma namespace("\\.\root\cimv2")

#pragma deleteclass("User_Account",NOFAIL)

 

[Union,ViewSources{"select * from Win32_Account where SIDType=1"},ViewSpaces{"\\.\root\cimv2"},dynamic,Provider("MS_VIEW_INSTANCE_PROVIDER")]

Class User_Account

{

  [key,PropertySources{"Domain"}]    string    Domain;

  [key,PropertySources{"Name"}]    string    Name;

  [key,PropertySources{"SID"}]    string    SID;

};

Na każdym kompie wyciągnie info o użytkownikach lokalnych. Jeśli chcemy mieć info o SIDach kont domenowych, to musimy po prostu mieć agenta SCCM na jednym z kontrolerów domeny (konta domenowe mają swoje instancje w klasie Win32_Account)

Teraz trzeba zmusić agentów SCCM, żeby raportowali info z lokalnego WMI (instancje klas Local_SID_List i User_Account) do serwera. W tym celu modyfikujemy plik sms_def.mof

#pragma namespace("\\.\root\cimv2\sms")

#pragma deleteclass("Local_SID_List",NOFAIL)

[SMS_Report(TRUE),SMS_Group_Name("Local_SID_List"),SMS_Class_ID("SMSExpert|Local_SID_List|1.0")]

Class Local_SID_List : SMS_Class_Template

{

  [SMS_Report(TRUE),key] string   KeyName;

  [SMS_Report(TRUE) ]    string   ProfileImagePath;

};

 

#pragma namespace("\\.\root\cimv2\SMS")

#pragma deleteclass("User_Account",NOFAIL)

[SMS_Report(TRUE),SMS_Group_Name("User_Account"),SMS_Class_ID("SMSExpert|Local_User_Account|1.0") ]

Class Local_User_Account : SMS_Class_Template

{

  [key,SMS_Report(TRUE)]    string    Domain;

  [key,SMS_Report(TRUE)]    string    Name;

  [key,SMS_Report(TRUE)]    string    SID;

};

Teraz SMS Provider na serwerze sam stworzy dane w bazie SQL (w formie tabel i perspektyw), które możemy wykorzystywać do tworzenia raportów. Jeśli nie chce nam się bawić w SQLki, to można na maszynie uruchmić SCCMowy Resource Explorer i obejrzeć wyniki Hardware Inventory.

Co do dokładnego procesu tworzenia raportów – to już temat na inny wpis Uśmiech

Spread the love

Comments (3)

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.