Zbierałem się do napisania artykułu, a wyszło jak zwykle
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
uptodate
Up2date
Anime Movies