GPP, RDS i zawieszające się sesje
ciekawy przypadek – użytkownicy nie mogą zalogować się do serwera terminalowego, ponieważ sesja zawiesza się na przetwarzaniu polis grupowych. serwer w2k8R2.
kilka ciekawostek:
- w eventlogu cisza. żadnych błędów
- nawet część dot. group policy eventvwrapplications and servicesmicrosoftwindowsgrouppolicy nie zawiera żadnych błędów – biało.
- spodziewałem się, że będzie widoczna sesja usera, jakieś dowiązanie do plików cokolwiek – nihuhu
- w process explorer nie widać żadnych procesów użytkownika, który się loguje – to dość zrozumiałe i do przełknięcia
- w RD Managerze widać tą sesję w dość specyficzny sposób – jako ‘disconnected’ i z nieokreślonym statusem, bez nazwy użytkownika. jedyna dostępna opcja to ‘reset’ i jak się można domyślać – nie działa. czyli jedna próba logowania i żeby user mógł się zalogować – restart serwera
jak widać debugowanie jest dość upierdliwe. szczęśliwie szybko wpadłem na pomysł jak sobie z tym poradzić [w dużym środowisq by to nie wyszło q: ] i zlokalizowałem polisę, która powodowała zawieszanie – chodziło o polisę mapująca drukarki mechanizmem Group Policy Preferences.
biorąc pod uwagę, że użytkownicy normalnie pracują a problem jest tylko na serwerze RDS, udało mi się dojść o co chodzi:
- drukarka A została dodana via GPP na stacji lokalnej użytkownika
- ta sama drukarka zawieszała przetwarzanie polis, ponieważ na serwerze terminalowym była równocześnie przemapowywana mechanizmem RDP oraz dodawana dokładnie tą samą polisą.
robiło się jakieś sprzężenie zwrotne, serwer reagował w głupi sposób, zawieszając cały proces przetwarzania polis.
rozwiązanie:
- w GPP do mapowania drukarek został dodany warunek ‘nie uruchamiaj jeśli nazwa netbios komputer = <nazwa RDS>’
pacjent uratowany.
eN.
SCCM – rozszerzamy Hardware Inventory
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ę:
[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ę:
[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
[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE) ] string ProfileImagePath;
[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