ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ KATEDRA POČÍTAČŮ
BAKALÁŘSKÁ PRÁCE
Návrh a realizace systému pro centralizovanou správu klientského prostředí profilů v OS MS Windows / Citrix Design and realization of a centralized management system of client environment on MS Windows / Citrix systems
Autor: Ondřej Lukáč Vedoucí práce: Ing. Miroslav Prágl, MBA
Praha, 2009
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 21. 1. 2009 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stránka | 4
Název práce: Návrh a realizace systému pro centralizovanou správu klientského prostředí profilů v OS MS Windows / Citrix Autor: Ondřej Lukáč Katedra: Katedra počítačů Obor: Výpočetní technika (bakalářský) Studijní program: Bakalářský Vedoucí: Ing. Miroslav Prágl, MBA (
[email protected]) Abstrakt: Proveďte analýzu současného stavu způsobu / systému nastavování a správy klientského prostředí (dále jen systému), zjistěte reálné potřeby zákazníka a definujte ideální cílový stav systému. Nastavte kritéria (metriky) pro pozdější vyhodnocení úspěšnosti implementace systému. Zjistěte, zda na trhu existují hotová řešení, zdůvodněte rozhodnutí vytvořit vlastní systém. S ohledem na počet uživatelů diskutujte a zvolte odpovídající platformu pro ukládání konfigurace (adresářové služby, databázový server, XML, textové soubory) a vhodný programovací / skriptovací jazyk. Realizujte a prakticky otestujte zvolené řešení. Vyhodnoťte úspěšnost implementace systému dle kritérií z prvního bodu.
Title: Design and realization of a centralized management system of client environment on MS Windows / Citrix systems Author: Ondřej Lukáč Department: Department of Computer Science and Engineering Programme: Computer Engineering Supervisor: Ing. Miroslav Prágl, MBA (
[email protected]) Abstract: Analyze current manner of setting and maintaining client environment. Determine real customer needs and define final system state. Adjust metrics for later evaluation of successful system implementation. Find suitable products on market and give reasons for creating own system. Choose appropriate configuration storage method (Directory services, database, XML, text files) and suitable programming/scripting language. Implement and test chosen solution. Evaluate success of system implementation according to adjusted metrics.
Stránka | 5
Obsah 1 2 3
Seznam obrázků ............................................................................... 8 Úvod ................................................................................................. 9 Analýza stávajícího stavu ................................................................ 10 3.1 Start Menu ................................................................................................... 10 3.1.1 Typy Start Menu ................................................................................... 10 3.1.2 Umístění Start Menu ............................................................................ 12 3.1.3 Přesměrování Start Menu .................................................................... 12 3.1.4 Vytvoření Start Menu ........................................................................... 13 3.1.5 Společné Start Menu ............................................................................ 13 3.2 Uživatelský profil ......................................................................................... 13 3.2.1 Vytvoření profilu .................................................................................. 14 3.2.2 Active Setup ......................................................................................... 14 3.3 Typy uživatelských profilů ........................................................................... 14 3.3.1 Lokální profil ......................................................................................... 14 3.3.2 Cestovní profil ...................................................................................... 14 3.3.3 Mandatorní profil ................................................................................. 15 3.3.4 Hybridní profil ...................................................................................... 15 3.4 Možnosti řízení Start Menu ......................................................................... 16 3.4.1 Nové možnosti Windows Server 2008 ................................................. 17 3.4.2 AppSense Environment Manager ........................................................ 18 3.5 Shrnutí ......................................................................................................... 19 3.5.1 Požadované vlastnosti systému ........................................................... 19
4
Popis řešení .................................................................................... 21 4.1 Úvod ............................................................................................................ 21 4.1.1 SQL Databáze ....................................................................................... 21 4.1.2 SMD Agent ........................................................................................... 21 4.1.3 SMD Cache ........................................................................................... 21 4.1.4 SMD Logon ........................................................................................... 21 4.1.5 SMD GUI ............................................................................................... 21 4.2 SQL Databáze – popis .................................................................................. 22 4.2.1 Schéma databáze ................................................................................. 22 4.2.2 Popis tabulek ........................................................................................ 22 4.2.3 Implementace ...................................................................................... 25 4.3 SMD Agent – popis ...................................................................................... 25 4.3.1 Implementace ...................................................................................... 25 4.3.2 Konfigurace .......................................................................................... 25 4.3.3 Logování ............................................................................................... 26 4.4 SMD Cache – popis ...................................................................................... 27 4.4.1 Popis XML schéma................................................................................ 27
Stránka | 6
4.5 SMD Logon – popis ...................................................................................... 32 4.5.1 Spouštění .............................................................................................. 32 4.5.2 Funkce .................................................................................................. 32 4.5.3 Zvláštní funkce ...................................................................................... 33 4.5.4 Logování................................................................................................ 34 4.5.5 Vývojový diagram SMD Logon .............................................................. 35 4.6 SMD GUI – popis .......................................................................................... 37 4.6.1 Přihlášení .............................................................................................. 38 4.6.2 Záložka Settings .................................................................................... 38 4.6.3 Záložka Domains/Groups ..................................................................... 39 4.6.4 Záložka Folder/Shortcuts...................................................................... 40 4.6.5 Editace zástupce ................................................................................... 41 4.6.6 Záložka Assignments ............................................................................ 42 4.7 Instalace ....................................................................................................... 44 4.7.1 Nastavení terminálového serveru ........................................................ 44 4.7.2 Databáze ............................................................................................... 45
5
Testování systému .......................................................................... 46 5.1 Architektura ................................................................................................. 46 5.1.1 Schéma testovacího prostředí .............................................................. 47 5.2 HW a SW Konfigurace .................................................................................. 47 5.2.1 Hostovací server ................................................................................... 47 5.2.2 SMD-DC................................................................................................. 47 5.2.3 SMD-PS ................................................................................................. 48 5.3 Popis prostředí ............................................................................................. 48 5.3.1 Active Directory .................................................................................... 48 5.3.2 SQL Server............................................................................................. 48 5.4 Testovací metodika ...................................................................................... 48 5.4.1 Testování dostupnosti .......................................................................... 48 5.4.2 Testování výkonu .................................................................................. 49 5.5 Výsledky testů .............................................................................................. 51 5.5.1 Testy dostupnosti ................................................................................. 51 5.5.2 Testy Dostupnosti – shrnutí ................................................................. 52 5.5.3 Testy výkonu – naměřené hodnoty...................................................... 53 5.5.4 Testy výkonu – shrnutí ......................................................................... 53
6
Zhodnocení realizace ...................................................................... 54 6.1 6.2
7 8 9
Shrnutí požadovaných vlastností ................................................................. 54 Závěr ............................................................................................................ 55
Použitá literatura ............................................................................ 56 Seznam použitých zkratek .............................................................. 57 Seznam příloh na CD ....................................................................... 58
Stránka | 7
1 Seznam obrázků Obrázek 1 Klasické Start Menu ................................................................................................ 10 Obrázek 2 Nová varianta Start Menu ve Windows XP/2003 ................................................... 11 Obrázek 3 Ukázka Start Menu ve Windows Server 2008 ........................................................ 11 Obrázek 4 Vyhledávání ve Start Menu u Windows Server 2008 ............................................. 12 Obrázek 5 Přesměrování pomocí GPO ..................................................................................... 12 Obrázek 6 Možnosti nastavení GPO pro přesměrování Start Menu ....................................... 13 Obrázek 7 Ukázka profilu ve Windows 2008 a Windows 2003 ............................................... 14 Obrázek 8 Možnosti nastavení Start Menu v Group Policy pro Windows 2003...................... 16 Obrázek 9 Možnosti nastavení zástupců v Group Policy Preferences ..................................... 17 Obrázek 10 Řízení zástupců v Group Policy Preferences ......................................................... 18 Obrázek 11 Uživatelské rozhraní AppSense Environment Manager ....................................... 19 Obrázek 12 Návrh akcí dynamického Start Menu pomocí AppSense Environment Manager 19 Obrázek 13 Ukázka logování SMD Agent do Event Logu ......................................................... 26 Obrázek 14 Vývojový diagram SMD Logon .............................................................................. 35 Obrázek 15 Vývojový diagram funkce „Rollback user“ ............................................................ 36 Obrázek 16 Vývojový diagram funkce „Redir start“ ................................................................ 36 Obrázek 17 Vývojový diagram konfigurace skupin .................................................................. 37 Obrázek 18 Přihlášení do SMD GUI .......................................................................................... 38 Obrázek 19 Záložka Settings v SMD GUI .................................................................................. 39 Obrázek 20 Záložka Domains/Groups SMD GUI s otevřenými editačními panely .................. 39 Obrázek 21 Záložka Folders/Shortcuts SMD GUI ..................................................................... 41 Obrázek 22 Editace zástupce v SMD GUI ................................................................................. 42 Obrázek 23 Záložka Assignments SMD GUI ............................................................................. 43 Obrázek 24 Zobrazení zděděných položek............................................................................... 44 Obrázek 25 Citrix Web Interface – webový přístup k aplikacím .............................................. 46
Stránka | 8
2 Úvod Problematika nastavování a údržby uživatelského prostředí je jedním ze základních prvků zajištění komfortního, bezpečného a konzistentního používání tenkého klienta terminálových serverů v prostředí systémů MS Windows Server a jejich nadstavbových produktů zejména společnosti Citrix, tedy programu XenApp (dříve Presentation Server). Uživatel musí mít vždy zajištěn jednoduchý přístup ke svým aplikacím a datům a zároveň musí mít zabráněno spouštět aplikace, které používat nesmí. Použité řešení by přitom mělo splňovat základní požadavky kladené na něj administrátorem, tedy snadnost používání, dostatečné možnosti provázání se stávajícím prostředím a předvídatelnost výsledků s vysokou mírou spolehlivosti. Účelem práce bylo zjistit aktuální možnosti nastavování a údržby profilu a to jak nativní v prostředí MS Windows Serveru, tak i možnosti dalších produktů. Vzhledem ke komplexnosti takového úkolu, který by přesahoval možnosti bakalářské práce, tak bylo přistoupeno k omezení cíle na konfiguraci primárního přístupového bodu ke spouštění aplikací v prostředí MS Windows, tedy zástupců ve Start Menu uživatele.
Stránka | 9
3 Analýza stávajícího stavu Nativní prostředky MS Windows pro konfiguraci a správu profilu uživatele v prostředí Active Directory jsou zejména objekty GPO. Jedná se o standardní, flexibilní a vysoce spolehlivé řešení používané prakticky ve všech instalacích MS Windows Server. Přináší významné zjednodušení správy klientů zejména s ohledem na široké možnosti nastavení zabezpečení a přístupu k mnoha funkcím Windows.
3.1 Start Menu 3.1.1 Typy Start Menu Základním typem Start Menu je „Klasické“ s volbami v jednom sloupci. Programy mají formu rozbalovacího menu a zástupci umístění v nejvyšší úrovni jsou zobrazeny v nejvyšší části menu.
Obrázek 1 Klasické Start Menu
Ve Windows XP byla představena nová forma Start Menu rozdělená do dvou sloupců, kde všichni zástupci ze Start Menu jsou vidět pod jedním rozbalovacím menu „All Programs“. Funkci přímých zástupců přebrali tzv. „připojení“ zástupci 1, kteří se zobrazují v horní části levého sloupce a pod nimi je seznam naposledy použitých zástupců. Tato forma přináší uživateli větší míru vlastního přizpůsobení a flexibility. Stejná verze Start Menu je i v serverové verzi Windows, tedy Windows Server 2003.
1
V anglických verzích je to označováno pojmem „pinned programs“
Stránka | 10
Obrázek 2 Nová varianta Start Menu ve Windows XP/2003
Zatím posledním typem Start Menu je verze představená ve Windows Vista a Windows 2008. Koncept je totožný s předchozí verzí, ale zástupci v „All Programs“ se nezobrazují ve vlastním menu, ale uvnitř levého sloupce a zároveň je možno zástupce přímo ze Start Menu vyhledávat, což je významným krokem vpřed. Značně to usnadňuje rychlé nalezení zástupce v případě velkého počtu nainstalovaných programů.
Obrázek 3 Ukázka Start Menu ve Windows Server 2008
Stránka | 11
Obrázek 4 Vyhledávání ve Start Menu u Windows Server 2008
3.1.2 Umístění Start Menu Zástupci v uživatelském start menu jsou určeny obsahem zvláštního adresáře. Tento adresář je pro operační systémy Windows NT, 2000, XP a 2003 ve výchozím stavu umístěn v profilu pod názvem „Start menu“. Pro Windows Vista a 2008 je to adresář „AppData\Roaming\Microsoft\Windows\Start Menu“. 2
3.1.3 Přesměrování Start Menu Chceme-li nějakým způsobem řídit obsah Start Menu, většinou se neobejdeme bez jeho přesměrování. To je možné jak lokálně v rámci profilu, tak i mimo profil do síťové složky. První možnost je přesměrování pomocí hodnoty v uživatelské části registru.3 Druhou možností je přesměrování pomocí Group Policy jak ukazují následující obrázky:
Obrázek 5 Přesměrování pomocí GPO
2 3
Název složky se může měnit pro lokalizované verze Windows Hodnota „Start Menu“ v klíči HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Stránka | 12
Obrázek 6 Možnosti nastavení GPO pro přesměrování Start Menu
3.1.4 Vytvoření Start Menu Uživatelské Start Menu je prvotně vytvořeno při tvorbě profilu z profilu výchozího. Obsah adresáře ve výchozím profilu je zkopírován do příslušného adresáře v novém profilu.
3.1.5 Společné Start Menu Start Menu, které uživatel skutečně má možnost používat, je dáno spojením obsahu uživatelského a Start Menu společného, které je uloženo v profilu „All Users“ v adresáři „Start Menu“. Lokace společného registru je určena v registru v hodnotě „Common Start Menu“ v cestě: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders Microsoft však důrazně nedoporučuje tuto hodnotu měnit.4
3.2 Uživatelský profil Uživatelským profil je základní úložiště veškerých osobních nastavení a souborů uživatele. U operačních systémů Windows 2000, XP, 2003 jsou lokální kopie profilů standardně uloženy v adresáři „C:\Documents and Settings“. Každý profil je pojmenován podle uživatelského jména. Pro operační systémy Windows Vista a 2008 je adresářová struktura profilů kompletně přepracována. Profily obsahuje adresář „C:\Users” a je změněna i vnitřní adresářová struktura profilu. Pro zachování zpětné kompatibility je původní struktura duplikována pomocí linků. Ilustruje to následující obrázek ukazující profil ve Windows 2008 a Windows 2003.
4
http://technet.microsoft.com/en-us/library/cc782304.aspx
Stránka | 13
Obrázek 7 Ukázka profilu ve Windows 2008 a Windows 2003
3.2.1 Vytvoření profilu V případě že není na počítači, ke kterému se uživatel přihlásil, k dispozici použitelný profil (netýká se profilu cestovního), tak je pro uživatele vytvořen profil nový. Tento profil je vytvořen kopií z tzv. výchozího profilu5.
3.2.2 Active Setup Active Setup je funkce Windows, která slouží k udržení konfigurace aplikací, které ho používají. Je založen na principu verze uložené v profilu uživatele a verze v HKLM větvi registru. Je-li vytvářen nový profil nebo verze uložená v HKLM je vyšší, tak se spustí definovaný příkaz. Bohužel v některých případech tyto příkazy zasahují do Start Menu, které ale chceme řídit jiným způsobem.6
3.3 Typy uživatelských profilů 3.3.1 Lokální profil Lokální profil uživatele existuje pouze v jedné kopii a to na počítači, na kterém byl profil vytvořen. Je používán uživatelem pouze při přihlášení na daný počítač.
3.3.2 Cestovní profil V mnoha prostředích je vhodné, aby si uživatel nesl svá nastavení s sebou i při přihlašování na různých počítačích. U prostředí s tenkým klientem je to dokonce zcela nezbytné. Uživatel se střídavě přihlašuje na různé servery a v žádném případě nesmí mít na nich různá nastavení (připojené tiskárny, síťové disky atd.). Microsoft pro tyto účely vytvořil
5 6
„Default User“ Popis funkce Active Setup např. zde http://en.wikipedia.org/wiki/Active_Setup
Stránka | 14
nový typ profilu, profil cestovní7. Primární úložiště tohoto profilu je většinou na souborovém serveru, ze kterého si vždy při přihlášení na počítač vytvoří systém lokální kopii tohoto profilu. Z výkonových a funkčních důvodů nejsou synchronizovány všechny složky z profilu. Standardně je vyjmut adresář „Local settings“, kde umísťují programy soubory, které se přenášet nemusejí.8 Dalším vyjmutým adresářem jsou dokumenty, protože přenášení by zabralo příliš přenosového pásma a místa na souborovém serveru. Dokumenty je proto v tomto případě nezbytné přesměrovat do síťového umístění, většinou domovského adresáře. Cestovní profil je možno nastavit ve vlastnostech uživatelského účtu přímo v Active Directory. Existují dvě různá nastavení pro případ přihlášení na pracovní stanici a terminálový server. Další nastavení je možno pomocí Group policy. V případě více prostředí je to dokonce nezbytné, protože s jedním společným profilem si nevystačíme.
3.3.3 Mandatorní profil Mandatorní profil je posledním typem profilu9 ve Windows prostředí. Jedná se vlastně o společný profil, ale po odhlášení se všechny změny ztratí. Význam to může mít například na počítačích používaných mnoha uživateli (internetové kiosky atp.) kde nemá význam změny ukládat. Uživateli se nastavuje stejným způsobem jako cestovní profil, ale musíme ho předem vytvořit a zároveň mu do na konec názvu přidat řetězec „.man“ nebo přejmenovat soubor „ntuser.dat“ v jeho kořeni na „ntuser.man“.
3.3.4 Hybridní profil Hybridní profil není standardním typem profilu, který by MS ve svých systémech poskytoval. Technicky se jedná o mandatorní profil, ale navenek s vlastnostmi profilu cestovního. Prakticky je toho dosaženo přesměrováním vybraných adresářů z profilu a skripty nebo zvláštním programem, který zajistí ukládání a opětovné načítání souborů a částí uživatelského registru. Nutnost nasadit hybridní profily vyvstává ve velkých prostředích, kde není možné lokálně ukládat kopie profilů (velké množství uživatelů) a při každém přihlášení tak musí dojít k načtení celého profilu. Ve větších nasazeních se také objevují problémy s jejich načítáním (např. nechtěným zamykáním souborů) a také s časem nastává určitá degradace profilu, „bobtnání“, které ve výsledku vede k nutnosti cestovní profil smazat a znovu vytvořit což žádného uživatele nepotěší, protože přijde o většinu svých vlastních nastavení. V reálných prostředích se i mazáním profilu řeší nesouvisející problémy a teprve až když se zjistí, že to nepomohlo, tak se řeší samotný problém. Uživatel ale v tom případě zbytečně přišel o svoje nastavení.
7
„Roaming profile“ Např. dočasný adresář Temp a dočasné soubory internetu 9 Není to tak úplně pravda, ještě existuje profil dočasný – temporary, který je ale pouze výsledkem chybového stavu, pokud není z nějakých důvodů možno vytvořit nový profil nebo použít stávající, po odhlášení se veškeré změny v profilu ztratí. 8
Stránka | 15
Jak již bylo řečeno, tak OS Windows nepodporuje hybridní profily přímo. Jedna možnost je to řešit svépomocí pomocí skriptování nebo použít některý nástroj, který to zajistí, např. Flex Profile Kit10, Citrix User Profile Manager11, triCerat Simplify Profiles12 nebo AppSense Environment Manager13.
3.4 Možnosti řízení Start Menu Windows disponují velkým množstvím centrálně řízených nastavení Start Menu prostřednictvím Group Policy:
Obrázek 8 Možnosti nastavení Start Menu v Group Policy pro Windows 2003
10
http://www.loginconsultants.com dříve sepagoPROFILE , koupeno společností Citrix - http://www.citrix.com/upm 12 http://www.tricerat.com/profile 13 http://www.appsense.com/products/environment_manager.aspx 11
Stránka | 16
Bohužel žádna z těchto možností neumožní centrálně řídit samotný obsah zástupců na nainstalované programy.
3.4.1 Nové možnosti Windows Server 2008 S vydáním nové serverové verze Windows Server 2008 bylo uvolněno rozšíření „Group Policy Preferences“ (dále GPP). Nejedná se o původní produkt společnosti Microsoft, ale o zakoupený a upravený produkt PolicyMaker od společnosti DesktopStandard. Přináší velké množství nastavení s velkou mírou flexibility, která pro standardní GPO není možná. Toto rozšíření není dostupné pouze pro nové verze Windows, ale dá se doinstalovat i do starších verzí.14 Kompletní popis tohoto rozšíření není možné vměstnat do této práce, takže popis bude omezen na možnosti vytváření zástupců.15 U zástupců je možné nastavovat všechny standardní parametry. Není možno je importovat a je nutné je přidávat po jednom. U každého je však možno díky vlastnostem GPP detailně cílit klienta/uživatele pro kterého se zástupce vytvoří, včetně členství ve skupině. Pro standardní GPO je možno cílit pouze celkově pomocí ACL Apply na GPO objekt. Není tak nutné podle skupin vytvářet zvláštní GPO. Stačí je vytvořit v jednom místě a pouze zajistit, aby se tento GPO objekt aplikoval na cílovou skupinu všech uživatelů. Zásadní nevýhoda je, že není možné cílit pomocí GPP skupinu zástupců, pouze konkrétního zástupce. Pokud budu chtít např. pět zástupců pro aplikace MS Office cílit na jednu skupinu, tak budu muset tuto vlastnost nastavit na všech pěti zástupcích zvlášť. Opačná možnost by byla řešit to pomocí ACL na GPO, ale tím se stírá ona výhoda definování všech zástupců na jednom místě. Další komplikací je nemožnost importovat stávajícího zástupce/zástupců. Nasazení GPP pro některá prostředí může být problematické, protože to vyžaduje zásah do samotné infrastruktury, změny na AD řadičích.
Obrázek 9 Možnosti nastavení zástupců v Group Policy Preferences
14
Windows Vista, Windows XP SP2, Windows Server 2003 SP1 Kompletní popis je zde: http://www.microsoft.com/downloads/details.aspx?FamilyID=42e30e3f-6f01-46109d6e-f6e0fb7a0790 15
Stránka | 17
Obrázek 10 Řízení zástupců v Group Policy Preferences
3.4.2 AppSense Environment Manager Jako jeden ze zástupců alternativních řešení byl vybrán produkt AppSense Environment Manager (dále EM). Jedná se o komplexní řešení pro řízení klientů a profilů. S ohledem na možnosti řízení Start Menu má oproti GPP ve Windows 2008 několik výhod. Umožňuje jednotlivé definice ukládat pro pozdější užití16 a dokáže je cílit i skupinově. Bohužel neumí po sobě vytvořené zástupce mazat, takže si to vynutí vytvoření dalších akcí, které nám dynamické Start Menu bude vytvářet. Jejich příklad je uveden na jednom z obrázků. Bohužel tyto další nastavení se neobejdou bez dopadu na výkon, který stojí opakované vytváření celého Start Menu. Další nevýhoda je, že v definici zástupce neumí využít cestu k Start Menu z profilu17 a má cestu natvrdo jako „%USERPROFILE%\Start Menu“. Při vytváření tak musíme myslet na skutečné umístění a v případě změny přesměrování musíme všechny zástupce předělat. Chybí možnost importu zástupců stejně jako u GPP. EM také nebere ohled na zástupce, které si vytvářejí programy pomocí funkce Active Setup. Pokud celé Start Menu pomocí EM smažeme a dále vytvoříme znovu, tak se tam noví zástupci z Active Setup při vytváření profilu přidají. Při dalším přihlášení se již ale naštěstí smažou. Výsledkem negativních vlastností EM je poměrně komplikované nastavení, pomocí kterého dosáhneme žádaného výsledku (příklad na obrázku). Pro profesionální program v ceně 40$ na uživatele to není zrovna dobrý výsledek, ale je jisté, že toto není pravý účel pořízení EM a paleta jeho funkcí je mnohem širší, ale bohužel není účelem této práce je popisovat.
16 17
tzv. Reusable nodes Popsáno v kap. 3.1.3
Stránka | 18
Obrázek 11 Uživatelské rozhraní AppSense Environment Manager
Obrázek 12 Návrh akcí dynamického Start Menu pomocí AppSense Environment Manager
3.5 Shrnutí Na trhu existují nástroje a možnosti jak řídit uživatelský profil i další vlastnosti profilů. Některé z nich jsou komerční (EM) a jiné jsou dodávány přímo společností Microsoft (GPP). Bohužel žádný z nich nemá všechny požadované vlastnosti pro řízení samotného Start Menu nebo si to vyžádá zbytečná nastavení navíc, která snižují efektivitu celého systému.
3.5.1 Požadované vlastnosti systému S ohledem na předchozí popis dostupných možností se dá shrnout soupis požadovaných vlastností takto: a) Skutečně dynamické Start Menu, zajištění i mazání zástupců, které již uživateli nepřináleží. b) Vytváření definicí složek a zástupců, které se dají uživateli/skupině přiřazovat. c) Importovací funkce pro existující zástupce. Musí fungovat i pro celé složky, aby se zástupci neimportovali po jednom. d) Funkce se stávající infrastrukturou bez nutnosti do ní zasahovat. Stránka | 19
e) Kompatibilita s Windows 2003. f) Optimalizace výkonu. Nesmí znatelně zpomalovat přihlášení při běžném provozu. g) Maximální transparentnost funkce, žádné proprietární neprůhledné řešení. h) Vysoká dostupnost. Řešení musí být funkční i při výpadcích jednotlivých komponent systému. i) Uživatelská přívětivost bez nutnosti ručního skriptování. j) Logovací funkce pro odhalení chyb v nastavení. k) Použité úložiště konfigurace musí splňovat základní předpoklady pro spolehlivý provoz, tedy zálohování a možnost vracení konfigurace. l) Možnost návratu do původního stavu profilu. m) Řešení problému s Active Setup.
Stránka | 20
4 Popis řešení 4.1 Úvod Bylo zvoleno vícevrstvé řešení, které vyhoví zejména požadavkům na vysokou dostupnost systému. Obchodní název systému byl zvolen s ohledem na řešené komponenty jako „Start Menu & Desktop Manager”. Užívá se ale zkrácený název „SMD Manager“. Skládá se z těchto komponent: • • • • •
SQL Databáze – realizace na MS SQL Server 2005 Express edition SMD Agent – služba běžící na terminálových serverech, která synchronizuje konfiguraci SMD Cache – lokální XML cache konfigurace SMD Logon – logon skript, který provádí samotnou konfiguraci SMD GUI – grafický konfigurační nástroj
4.1.1 SQL Databáze Primární zdroj dynamických konfiguračních informací. SQL databáze byla zvolena s ohledem na uvažovaná cílová prostředí a používaná platforma je Microsoft SQL Server. V rozsáhlejších terminálových farmách se předpokládá využití již existujících databázových serverů. Pro menší nasazení postačí využití neplaceného produktu MS SQL Server 2005 Express edition na kterém bylo řešení i otestováno.
4.1.2 SMD Agent Služba běžící na všech terminálových serverech. Zajišťuje synchronizaci konfigurace uložené v SQL databázi do lokálního XML souboru – SMD Cache, který je nadále užíván pro samotnou konfiguraci profilu.
4.1.3 SMD Cache XML soubor obsahující kopii konfigurace uložené v databázi mírně upravené pro účely využití logon skriptem.
4.1.4 SMD Logon Přihlašovací PowerShell skript, který se spouští při přihlášení uživatele a který provádí veškerou konfiguraci profilu.
4.1.5 SMD GUI GUI nástroj spouštěný na terminálovém serveru nebo administrátorské stanici. Provádí veškerou konfiguraci v SQL databázi a základní administrátorské úlohy systému. Jedná se o jediný běžně používaný nástroj administrátora SMD Manager.
Stránka | 21
4.2 SQL Databáze – popis 4.2.1 Schéma databáze
4.2.2 Popis tabulek 4.2.2.1 SERVERS Samostatná tabulka bez dalších referencí. Prostý seznam serverů. • •
name – název serveru enabled - určuje, zda je konfigurace pomocí SMD Manager povolena. Tato vlastnost není v aktuální verzi SMD Agenta a Logonu implementována. SMD GUI s ní již počítá.
Stránka | 22
4.2.2.2 CONFIG Samostatná tabulka bez dalších referencí. Obsahuje seznam konfiguračních parametrů. • • •
attr_name – název parametru value – hodnota parametru config_id – primární klíč
Aktuální verze systému vyžaduje přítomnost těchto konfiguračních parametrů: • • •
shortcut_loc – cesta k lokální cache zástupců, kteří se místo vytváření pouze kopírují smd_start_loc – cesta k vytvářenému Start Menu version – verze konfigurace, slouží k identifikaci nové verze
4.2.2.3 DOMAINS Seznam konfiguračních domén. • •
ldap-path - DN (Distinguished Name) domény.18 name - rozlišovací název pro GUI. SMD Logon ho nepoužívá.
4.2.2.4 GROUPS Definiční seznam skupin. • • • • •
name – Název skupiny. type – typ skupiny, Obsahuje-li „user“, nejedná se o skupinu ale o jméno uživatele. enabled – určuje, zda je skupina povolena pro konfiguraci pomocí SMD Manager. domains_id – vzdálený klíč určující příslušnost skupiny do domény unikátní kombinace reference do domains_id a name – zajišťuje, že nemůžeme přidat do jedné domény skupiny/uživatele se stejným názvem.
4.2.2.5 FOLDER_DEF Definiční seznam adresářů, které se mohou přiřazovat skupinám/uživatelům. • • •
•
name – název adresáře special – určuje zvláštní složku, se kterou se musí nakládat jinak než s běžnými, např. Quick launch parent_folder_def_id – reference na řádek ze stejné tabulky, zajišťuje stromové uspořádání záznamů. Sloupec je nepovinný. Neobsahuje-li hodnotu, tak se složka nachází v nejvyšší úrovni. unikátní kombinace názvu a rodičovského adresáře – nemůžeme přiřadit jednu složku vícekrát.
4.2.2.6 SHORTCUT_DEF Definiční seznam zástupců. 18
http://msdn.microsoft.com/en-us/library/aa366101(VS.85).aspx
Stránka | 23
• • • • • •
• • •
name – název zástupce, pod tímto názvem bude vytvářen soubor se zástupcem target – cíl zástupce folder_def_id – definiční adresář ke kterému zástupce patří povinné sloupce jsou pouze name, target a folder_def_id arguments – argumenty pro spouštění cíle description – popis v zástupci icon – ikona přiřazená k zástupci ve formátu „cíl, pozice“, cíl obsahuje soubor s ikonou a pozice je číslo označující pozici v seznamu ikon v souboru. Cíl je nepovinný, je-li prázdný tak se bere jako zdrojový soubor cíl zástupce. workdir – pracovní adresář ve kterém se cíl spouští window – typ spouštěného okna special – označuje zvláštního zástupce, kterým se v SMD Logon ošetřuje zvláštní funkcí, např. „Show desktop“
4.2.2.7 GROUP_DEF Seznam konfiguračních záznamů skupin/uživatelů. • • •
priority - určuje pořadí provádění konfigurace disabled – zakáže konfiguraci až do dalšího výskytu skupiny s disabled=FALSE groups_id – vzdálený klič identifikující skupinu/uživatele
4.2.2.8 FOLDER_GROUP Přiřazení adresářů ke konfiguračním záznamům. • • •
• • •
name – název adresáře, umožňuje změnit název z definice include_shortcuts – povoluje dědění podsložek/zástupců z definice adresáře parent_folder_group_id – reference do stejné tabulky, vytváří stromovou strukturu přiřazených adresářů. Je-li prázdný tak se jedná o přiřazení složky na nejvyšší úrovni. group_def_id – vzdálený klíč přiřazující řádek ke konfiguračnímu záznamu folder_def_id – vzdálený klíč označující přiřazený adresář unikátní kombinace name, parent_folder_group_id, group_def_id, folder_def_id – nemůžeme přiřazovat stejný adresář pod stejným jménem vícekrát. Přiřazení různých adresářů pod stejným jménem je možné – dojde k vytvoření zástupců pod jedním adresářem se společným názvem. Stejně tak můžeme přiřadit stejný adresář pod původním i se změněným jménem.
4.2.2.9 SHORTCUT_GROUP Kromě adresářů můžeme přiřazovat ke skupině i samotné zástupce. • • •
folder_group_id – vzdálený klíč, určuje do jakého adresáře je zástupce přiřazen shortcut_def_id - vzdálený klíč s přiřazeným zástupcem primárním klíčem je kombinace obou předchozích sloupců, nemůžeme přiřadit jednoho zástupce do stejného adresáře vícekrát.
Stránka | 24
4.2.3 Implementace Databáze byla implementována na Microsoft SQL Server 2005 Express Edition. Jedná se o základní verzi databázového serveru, která je dostupná zdarma včetně managament nástroje Microsoft SQL Management Studio Express. Má však omezení na 1 procesor, 1GB paměti a velikost databáze 4GB. Pro účely SMD Manager je naprosto dostatečná. Vzhledem k jednoduchosti celé databáze se nedá předpokládat problém s budoucí i zpětnou kompatibilitou (pouze s ohledem na vlastnosti .NET Framework). Ve stávající verzi nedisponuje SMD Manager žádným zvláštním nástrojem, který databázi vytvoří a naplní daty. Pro tento účel je vytvořen SQL skript „smdds_db_create_structure.sql“, který vytvoří tabulky v existující databázi. Databázi je nutné vytvořit ručně a přiřadit v ní příslušná práva. Další skript „smdds_db_create_data.sql“ naplní tabulky vzorovými daty, aby se s databází dalo dále pracovat. Implementace spoléhá na integrovanou autentizaci. Administrátor systému i služba SMD Agent musí běžet pod uživatelem, který má do databáze příslušný přístup (SMD Agent čtení a administrátor zápis). Zvolená SQL databáze splňuje všechny předpoklady kladené na systém. Tedy hlavně robustnost, transparentnost, standardizaci a možnost zálohování a vracení konfigurace. Pro vracení konfigurace je nutné použít zabudované nástroje SQL serveru, tedy zálohování s transakčním logem19.
4.3 SMD Agent – popis SMD Agent je služba, která musí běžet na každém serveru, kde chceme mít aktuální verzi konfigurace. Jedná se o spustitelný soubor „SMDAgent.exe“, který používá společnou knihovnu „SMDManager.dll“. Provádí pravidelnou aktualizaci lokální SMD Cache daty z databáze. Tato aktualizace se provádí v nastavených intervalech, popř. při startu služby – možno použít k okamžitému aplikování provedené změny.
4.3.1 Implementace Program je napsán v programovacím jazyce C# využívající .NET Framefork 2.0. Jako vývojové prostředí bylo použito Microsoft Visual Studio 2005. Jazyk C# byl zvolen pro jeho modernost, objektovou povahu, rychlé psaní kódu a jistou budoucí podporu.
4.3.2 Konfigurace Konfigurace SMD Agent je uložena lokálně v registru: Klíč HKLM\SOFTWARE\SMD Manager HKLM\SOFTWARE\SMD Manager HKLM\SOFTWARE\SMD Manager HKLM\SOFTWARE\SMD Manager\DB
Hodnota AgentLogfilePath CachePath RefreshInterval DBServer
Typ REG_SZ REG_SZ REG_SZ REG_SZ
19
Nastane problém, že obnovená verze bude starší, než mají uživatelé v profilu. Toto bude řešeno v novější verzi nastavením verze pomocí SMD GUI.
Stránka | 25
HKLM\SOFTWARE\SMD Manager\DB HKLM\SOFTWARE\SMD Manager\DB
• • • • • •
DBName DBInstance
REG_SZ REG_SZ
AgentLogFilePath – cesta k textovému logu SMD Agenta CachePath – cesta k SMD Cache souboru (včetně jeho názvu) RefreshInterval – Interval obnovování cache v minutách DBServer – název databázového serveru s konfigurace DBName – název databáze DBInstance – instance databáze ve formátu např. „\\sqlexpress”
Bez existence těchto konfiguračních hodnot nebude fungovat SMD Agent vůbec nebo nekorektně (nebude logovat). Služba musí běžet pod uživatelem s právy do databáze. Tento uživatel musí mít i příslušná práva pro vytváření logu a souboru SMD Cache.
4.3.3 Logování SMD Agent loguje jak do lokálního souboru, tak i využívá lokální aplikační Event Log serveru. Ukázka logování do souboru: 7.1.2009 7.1.2009 7.1.2009 7.1.2009 7.1.2009 7.1.2009 7.1.2009 7.1.2009 7.1.2009 7.1.2009
20:35:40 20:35:41 20:41:45 20:41:46 20:42:33 20:42:33 20:42:56 20:47:37 20:48:58 20:48:59
: : : : : : : : : :
SMD Agent started. SMD XML Cache succesfully refreshed. SMD Agent started. SMD XML Cache succesfully refreshed. SMD Agent started. SMD XML Cache succesfully refreshed. SMD Agent started. SMD Agent started. SMD Agent started. Error refreshing SMD XML Cache.
Obrázek 13 Ukázka logování SMD Agent do Event Logu
Stránka | 26
4.4 SMD Cache – popis SMD Cache je název pro lokální XML soubor, který obsahuje obraz konfigurace v databázi. Funguje jako prostředník mezi přihlašovacím skriptem SMD Logon a databází. Toto řešení bylo zvoleno z těchto důvodů: • • • •
Možnost použití v PowerShellu Standardní, průhledné řešení. Výkon – lokální XML soubor bude nejspíš rychlejší než vzdálená databáze. Spolehlivost – Dostupný vždy bez ohledu na databázi.
4.4.1 Popis XML schéma 4.4.1.1 Kořenový element Příklad: <smdds version="13">
• •
/smdds – kořenový element SMD Manageru Atribut „version“ specifikuje aktuální verzi konfigurace.
4.4.1.2 Konfigurační element Příklad:
<enabled_groups> <domain name="dc=smd,dc=int" id="1"> <shortcut_loc>c:\Program Files\SMD Manager\shortcut <smd_start_loc>%userprofile%\SMD_Start_menu
• •
• •
20
/smdds/config – konfigurační element /smdds/config/enabled_groups – povolené skupiny pro konfiguraci pomocí skriptu SMD Logon20. Syntaxe určení domény a skupin je stejná jako v elementu /smdds/group_def. /smdds/config/shortcut_loc – uložení lokální cache zástupců /smdds/config/smd_start_loc – umístění startu vytvořeného skriptem SMD Logon. V této cestě je možné používat uživatelské i systémové proměnné. Do této cesty je uživateli přesměrováno Start Menu, uživatel tam musí mít tedy zápis.
Mají nastaven atribut enabled v záložce Domains/Groups v SMD GUI
Stránka | 27
4.4.1.3 Definice adresářů Příklad:
• •
/smdds/folder_def – element s definicí adresářů /smdds/folder_def/folder – element definující adresář na nejvyšší úrovni. Ve stávající verzi se bere ohled pouze na adresáře s hodnotou atributu id 0 a 1001. Hodnota 0 odpovídá Start Menu a hodnota 1001 panelu rychlého spuštění.21 - atribut id – povinný jedinečný identifikátor adresáře, podle kterého vyhledává SMD Logon přiřazený adresář. Nesmí existovat více elementů folder se stejným id. Odpovídá sloupci folder_def_id v tabulce FOLDER_DEF. - atribut name – povinný název adresáře. Odpovídá sloupci name v tabulce FOLDER_DEF.
•
Do elementů folder je možno libovolně vnořovat další elementy folder. Toto vnoření odpovídá vytvářené adresářové struktuře.
4.4.1.4 Definice zástupců <shortcut_def> <shortcut id="1" folder_id="2">
Acrobat Reader 7.0 %ProgramFiles%/Adobe/Acrobat 7.0/Reader/AcroRd32.exe 21
Quick Launch
Stránka | 28
<arguments /> <description />
,0 <window>0 <workdir /> <special>False <shortcut id="2" folder_id="2">
Acrobat Reader 8.0 %ProgramFiles%/Adobe/Acrobat 8.0/Reader/AcroRd32.exe <arguments /> <description />
,0 <window>0 <workdir /> <special>False
• •
/smdds/shortcut_def – element s konfigurací zástupců /smdds/shortcut_def/shortcut – element s definicí jednoho zástupce - atribut id – jednoznačný identifikátor zástupce, odpovídá sloupci shortcut_def_id v tabulce SHORTCUT_DEF - atribut name – název zástupce, odpovídá sloupce name v tabulce SHORTCUT_DEF
• • • • • • •
/smdds/shortcut_def/shortcut/name – název pod kterým se zástupce vytváří /smdds/shortcut_def/shortcut/target – cíl zástupce /smdds/shortcut_def/shortcut/arguments – argumenty /smdds/shortcut_def/shortcut/description – popis /smdds/shortcut_def/shortcut/icon – ikona zástupce ve formátu „cíl“, „pozice ikony“. Pokud je cíl prázdný tak se ikona bere z cíle zástupce /smdds/shortcut_def/shortcut/workdir – pracovní adresář spuštěné aplikace /smdds/shortcut_def/shortcut/window – styl spuštěného okna -
•
0 – skryté okno prázdné nebo 1 – normální okno 2 – minimalizované aktivní okno 3 – maximalizované okno 4 – neaktivní okno 5 – normální okno 6 – minimalizované neaktivní okno 7 – minimalizované okno
/smdds/shortcut_def/shortcut/special – pokud obsahuje „true“, tak se jedná o zvláštního zástupce, se kterým zachází SMD Logon jinak než s běžnými zástupci.
Stránka | 29
4.4.1.5 Definice přiřazení
<domain name="dc=smd,dc=int" id="1"> <preferences> <priority value="10" /> <shortcut id="32" /> <shortcut id="33" /> <shortcut id="34" /> <shortcut id="29" /> <shortcut id="39" /> <shortcut id="41" /> <preferences> <priority value="14" /> <shortcut id="34" /> <shortcut id="47" /> <shortcut id="54" /> <preferences> <priority value="15" /> <shortcut id="14" />
Stránka | 30
• •
/smdds/group_def – pro definici přiřazení /smdds/group_def/domain – definice domény pro skupinu - atribut name - DN domény - atribut id – nepovinný, odpovídá sloupci domains_id v tabulce DOMAINS. SMD Logon ho nepoužívá.
•
/smdds/group_def/domain/group – definuje skupinu/uživatele pro přiřazení - atribut name – určuje jméno skupiny, které musí odpovídat atributu sAMAccountName skupiny v Active Directory - atribut type – nepovinný atribut, pokud je hodnota „user“ tak se jedná o uživatele a ne skupinu - atribut id – nepovinný, odpovídá sloupci groups_id v tabulce GROUPS. SMD Logon ho nepoužívá.
• •
• •
/smdds/group_def/domain/group/preferences – slouží pro konfiguraci skupiny přiřazení /smdds/group_def/domain/group/preferences/priority – priorita skupiny. Atribut value určuje prioritu této skupiny. K aplikaci nastavení dochází od nejnižší po nejvyšší prioritu. /smdds/group_def/domain/group/preferences/disabled – zakázání konfigurace pro člena skupiny/uživatele. Atribut value nabývá hodnotu „true“ nebo „false“.22 /smdds/group_def/domain/group/folder – odpovídá složce na nejvyšší úrovni, pro kterou se provádí konfigurace, atribut id odpovídá složce definované ve folder_def. V aktuální verzi existují dva typy složek v nejvyšší úrovni: - id=0 – pro Root složku odpovídající samotnému Start Menu - id=1001 – pro Quick Launch složku odpovídající panelu rychlého spuštění.
•
V nejvyšším elementu folder je možné dále libovolně přiřazovat další elementy folder a shortcut. Toto přiřazení odpovídá vytvářené adresářové struktuře. Každý takový element může mít tyto atributy: - id – id odpovídajícího adresáře z elementu folder_def - name – nepovinný. V případě jeho použití se nahradí název složky z folder_def hodnotou tohoto atributu - include_shortcuts – nepovinný. Pokud má hodnotu „true“ tak se kromě tohoto adresáře vytvoří také všechny podadresáře z definice a zástupci k těmto adresářům přiřazené.
• 22
Hloubka vnoření elementů folder není omezena.
Podrobnější popis v kapitole 4.5
Stránka | 31
•
Element shortcut vytvoří v aktuální cestě zástupce, který odpovídá jeho definici v /smdds/shortcut_def.
4.5 SMD Logon – popis Poslední vrstvou systému, která provádí samotné změny v profilu je přihlašovací skript SMD Logon. Skript je napsán v jazyce PowerShell, který je moderní alternativou tradičních shellů v operačních systémech Unixového typu. Hlavním přínosem je jeho objektový charakter, který značně zjednodušuje psaní skriptů. Je postaven na základě. NET Frameworku a podporuje všechny jeho možnosti. Microsoft do tohoto jazyka vkládá velké naděje a s vysokou pravděpodobností se bude jednat o primární administrační nástroj jeho serverových produktů.23
4.5.1 Spouštění SMD Logon je zástupný název pro skript se skutečným názvem logon.ps1, který je umístěn lokálně na terminálovém serveru. Spouštění se provádí ve fázi AppSetup přihlášení uživatele. Jedná se o zvláštní fázi přihlášení, která je specifická pro terminálové servery a spouští se pro uživatele pouze při přihlášení na konzoli nebo pomocí terminálového serveru. Na jiných Windows serverech se vůbec neprovádí. Další důležitá vlastnost je, že se provádí synchronně a před všemi dalšími logon skripty (ale až po vytvoření profilu) a vynutíme tím spouštění pro všechny uživatele přihlašující se na terminálový server. Spouštění se nastavuje v registru v hodnotě „AppSetup“ v klíči HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. V této hodnotě se může nastavit více příkazů, ale musí být odděleny čárkou. Protože se tyto příkazy provádí uživateli viditelně, tak Citrix nabízí zvláštní program CtxHide.exe, který je skryje. Výsledný příkaz pro spouštění SMD Logon přidávaný do registru pak vypadá např. takto: CtxHide.exe powershell &'C:\Program Files\SMD Manager\logon.ps1'
4.5.2 Funkce SMD Logon provádí veškeré konfigurační změny v profilu. Funguje tak, aby v případě problémů s SMD Cache nebo jiných problémů nedošlo k nemožnosti přístupu uživatele k Start Menu. V profilu zůstává vždy předchozí verze. Je-li detekována novější verze konfigurace, tak se zástupci vytvářejí do dočasného adresáře a až na úplném konci dojde k přejmenování tohoto adresáře do cílového umístění. Není-li detekována novější verze, tak se zástupci přidávají do stávajícího Start Menu a maximálně dojde k opětovnému vytvoření smazaných zástupců nebo adresářů. Žádný zástupce není přepsán. Zároveň je tím dosaženo i optimalizace výkonu. Pro zvláštní účely je možné využít lokální cache zástupců, kdy není zástupce vytvářen zvláštní funkcí, ale pouze zkopírován z tohoto umístění. SMD Logon před každým vytvořením zástupce zkontroluje, zda v této cache není zástupce s názvem 23
Již dnes je pro Exchange Server 2007, kde je GUI nadstavbou pro Exchange shell, který je založen na PowerShellu.
Stránka | 32
odpovídajícím atributu id vytvářeného zástupce. Účel to má například ve chvíli, kdy vytváříme zvláštním způsobem upraveného zástupce jako je zástupce na příkazovou řádku, který navíc disponuje nastavením velikosti okna, fontu atd. SMD Logon také zachovává původní, nepozměněné Start Menu. Nové je vytvářeno v jiném umístění a v případě, že uživatel přestane být členem některé z povolených skupin tak je v registru Start Menu přesměrováno do původního umístění. Členství ve skupinách se určuje podle atributu memberof uživatelského objektu. Vnořené skupiny nejsou implementovány, zejména kvůli optimalizaci rychlosti provádění skriptu.24 Skript má také povolenu funkci zjišťování tzv. primární skupiny uživatele, která není uvedena v atributu memberof, ale je definována pomocí atributu primarygroupid. Vyhledávání skupiny podle tohoto atributu je však časově náročnější, protože díky omezení vyhledávání, je nutné nejdřív načíst seznam všech skupin a v nich tento atribut vyhledat. Je uvažována možnost tuto funkci v konfiguraci vypnout pro případ rozsáhlých domén. Název skupiny je ve skriptu rozlišován jako atribut sAMAccountName. Rozlišení na bázi SID25 není zavedeno, takže v případě přejmenování skupiny je nutné zároveň přejmenovat skupinu v SMD Manager. Zakázání konfigurace atributem disabled s elementu preference se děje až do dalšího výskytu té samé skupiny s atributem nenastaveným. Zákaz konfigurace se děje včetně, tedy přiřazení z konfigurační skupiny s nastaveným parametrem se neprovádí. Naopak přiřazení z konfigurační skupiny, která konfiguraci opět povolí, se již provádí. SMD Logon umožňuje mít v jedné chvíli pro uživatele pouze jednu zakázanou skupinu. Vyskytne-li se takový stav, tak SMD Logon povolí konfiguraci v případě výskytu poslední skupiny v pořadí, která konfiguraci zakázala. Zřejmé je to z vývojového diagramu pro konfiguraci skupin, kde k řízení tohoto zakazování slouží proměnné „$disabled” a „$disabled_group”. Princip funkce SMD Logon je zřejmý z následujících vývojových diagramů, které ho popisují.
4.5.3 Zvláštní funkce 4.5.3.1 Zástupce pro zobrazení plochy V panelu rychlého spuštění se v OS Windows implicitně vytváří zástupce, který zobrazí plochu. Bohužel se nejedná o klasického zástupce, kterého bychom mohli vytvářet stejným způsobem jako všechny ostatní. Ve skutečnosti je to textový soubor s příponou scf26, který obsahuje tento text: [Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop 24
V budoucnu to není ale vyloučeno. http://en.wikipedia.org/wiki/Security_Identifier 26 „Shell Command File“ 25
Stránka | 33
V databázi je tak tento zástupce vytvořen s nastaveným sloupcem special a SMD Logon má zvláštní funkci pro jeho vytvoření.
4.5.4 Logování SMD Agent má implementovanou funkci logování pro usnadnění řešení problémů spojených s konfigurací profilu. Logování se může provádět do společného umístění nebo pro každého uživatele zvlášť. Rozlišení je možno provést použitím uživatelské proměnné v cestě k logu (např. %USERPROFILE%). Logování má celkem čtyři úrovně od úplně vypnutého logování až po kompletní logování. • •
0 – žádné logování 1 – pouze základní informace, ukázka:
19.1.2009 20:46:19: SMD\admin,ICA-tcp#730: Script started 19.1.2009 20:46:19 19.1.2009 20:46:19: SMD\admin,ICA-tcp#730: Current version of configuration detected. 19.1.2009 20:46:20: SMD\admin,ICA-tcp#730: User is Member of: 19.1.2009 20:46:20: SMD\admin,ICA-tcp#730: Domain Users,Visual Studio,SMD_Admins,Domain Admins, 19.1.2009 20:46:20: SMD\admin,ICA-tcp#730: SMD Configuration for user is enabled. 19.1.2009 20:46:20: SMD\admin,ICA-tcp#730: Configuration disabled for: Domain Admins 19.1.2009 20:46:20: SMD\admin,ICA-tcp#730: Configuration enabled for: Domain Admins 19.1.2009 20:46:20: SMD\admin,ICA-tcp#730: Configuring Start Menu for group: Domain Admins 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Configuring Quick Launch for group: Domain Admins 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Configuring Start Menu for group: Visual Studio 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Configuring Quick Launch for group: Visual Studio 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Configuring Start Menu for group: SMD_Admins 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Configuring Quick Launch for group: SMD_Admins 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Files from C:\Documents and Settings\admin\SMD_Quick_Launch copied to C:\Documents and Settings\admin\Application Data\Microsoft\Internet Explorer\Quick Launch 19.1.2009 20:46:21: SMD\admin,ICA-tcp#730: Exit from script 19.1.2009 20:46:21 (2.2665385 s)
• •
2 – logování navíc nově vytvářených složek/zástupců 3 – logování včetně informace o již existujících (nepřepisovaných) složek a zástupcích
Nastavení cesty a úrovně logování je v registru: Klíč HKLM\SOFTWARE\SMD Manager HKLM\SOFTWARE\SMD Manager
Stránka | 34
Hodnota LogfilePath LogLevel
Typ REG_SZ REG_SZ
4.5.5 Vývojový diagram SMD Logon
Obrázek 14 Vývojový diagram SMD Logon
Stránka | 35
Obrázek 15 Vývojový diagram funkce „Rollback user“
Obrázek 16 Vývojový diagram funkce „Redir start“
Stránka | 36
Obrázek 17 Vývojový diagram konfigurace skupin
4.6 SMD GUI – popis SMD GUI je základní konfigurační nástroj systému. Je stejně jako SMD Agent napsán v programovacím jazyce C# ve vývojovém prostředí Microsoft Visual Studio 2005. Jazyk uživatelského rozhraní je angličtina. Do budoucna se plánuje i čeština s možností přepínání. Program se skládá z hlavního spouštěcího souboru „SMDGUI.exe“ a sdílené knihovny „SMDManager.dll“. SMD GUI nemusí být spouštěn lokálně na serveru, kde je SMD Manager nainstalován. Konfigurace se provádí vzdáleně do SQL serveru s databází. Při spuštění lokálně
Stránka | 37
na terminálovém serveru je z GUI možnost přímo otevírat a mazat lokální logy SMD Manageru.27 Téměř veškerá konfigurace se provádí v jednom základním okně, rozděleném na čtyři záložky. V hlavním okně vpravo nahoře je možno tlačítkem s modrými šipkami znovu načíst celou konfiguraci z databáze.
4.6.1 Přihlášení Po spuštění programu následuje přihlašovací dialog, kde se zadává název SQL serveru, jeho instance a název databáze. Pro opětovné spouštění jsou tyto údaje uloženy do uživatelské části registru.28 Pro možnost autentizace existuje integrovaná ve Windows a uživatel/heslo. V prvním případě musí mít přihlášený uživatel oprávnění do databáze. Nebude-li mít právo zápisu, tak nebude moci dělat v konfiguraci žádné změny, ale pouze jí prohlížet.
Obrázek 18 Přihlášení do SMD GUI
4.6.2 Záložka Settings Záložka settings slouží k: • • • • •
Definování seznamu serverů a povolování/zakazování konfigurace pomocí SMD Logon.29 Kontrola služby SMD Agent. Možnost zastavovat a spouštět tuto služby i na vzdáleném serveru vybraném ze seznamu. Nastavování úrovně logování SMD Logon na lokálním serveru. Mazání a otevírání30 logů SMD Logon a SMD Agent. Zobrazení konfiguračních parametrů z tabulky CONFIG31.
27
Je plánováno rozšíření o možnost vzdáleného otevírání pomocí administrátorských sdílení C$, D$ atd. V cestě „HKEY_CURRENT_USER\Software\SMD Manager\GUI“ 29 Tuto vlastnost nemá ale SMD Logon zatím implementovánu. 30 Je spuštěn program notepad.exe s parametrem cesty k logu. 31 Tyto parametry není možno z GUI zatím měnit. 28
Stránka | 38
Obrázek 19 Záložka Settings v SMD GUI
4.6.3 Záložka Domains/Groups • • •
Definuje seznam domén a skupin/uživatelů z nich, které můžeme přidávat do konfiguračních skupin. V seznamu skupin je možno checkboxem „Enabled group“ přidat skupinu do povolených skupin.32 Tlačítko „Assign group“ slouží k přidání skupiny do seznamu konfiguračních skupin v poslední záložce „Assignments“.
Obrázek 20 Záložka Domains/Groups SMD GUI s otevřenými editačními panely
32
Odpovídá elementu „/smdds/config/enabled_groups” v SMD Cache
Stránka | 39
4.6.4 Záložka Folder/Shortcuts • •
•
• •
•
•
33
Umožňuje editaci definovaných adresářů a zástupců. V levém panelu je stromová struktura adresářů. V aktuální verzi existují pouze dva adresáře v nejvyšší úrovni. „Quick Launch“ odpovídá panelu rychlého spuštění a „root“ odpovídá nejvyšší úrovni Start Menu. V pravé části se zobrazují definice zástupců podle aktuálně vybraného adresáře. V okně se zobrazují pouze základní informace o zástupci, což je název a cíl. Detailní informace se objeví v novém okně po kliknutí na tlačítko Edit nebo dvojitým kliknutím na zástupce. Adresáře je možno mazat, přejmenovávat i přidávat. Není možno mazat adresáře, pokud mají stále přiřazené nějaké zástupce nebo podadresáře.33 Tlačítko „Import“ sloučí k importování zástupce ze souboru do právě vybraného adresáře. Po vybrání jednoho nebo více zástupců v dialogu se otevře příslušný počet oken s importovanými zástupci, kde je můžeme před uložením ještě upravit. Tlačítko „Import Directory“ importuje rekurzivně adresář včetně všech podadresářů a zástupců v nich. V tomto případě se editační okna zástupců neotevírají. Editace zvláštních zástupců, které mají v databázi nastaven sloupec „special“ není povolena.
Možnost mazání včetně podadresářů a zástupců bude v budoucnu přidána.
Stránka | 40
Obrázek 21 Záložka Folders/Shortcuts SMD GUI
4.6.5 Editace zástupce • • • •
•
Pro editaci zástupce slouží zvláštní okno, ve kterém je možné měnit všechny volitelné parametry zástupce. Cíl zástupce je možné vybrat ve zvláštním dialogu pomocí tlačítka „Browse“. Pro změnu otevíraného okna (parametr Window) slouží výběrový seznam všech možností. Ikonu je možno vybírat z načteného seznamu z jakéhokoliv vybraného souboru (exe, dll). V dolní části se automaticky načtou všechny ikony. Vybereme-li jiný soubor s ikonami, tak musíme před načtením ikon ještě kliknout na tlačítko „Apply“. V pravé horní části okna se pro informaci zobrazuje ID zástupce, které je třeba znát pro případ využití lokální cache zástupců SMD Logon.
Stránka | 41
Obrázek 22 Editace zástupce v SMD GUI
4.6.6 Záložka Assignments • • •
•
• •
Záložka „Assignments“ slouží k samotnému definovaní přiřazení zástupců a adresářů ke konfiguračním skupinám. V levé části je stromová struktura se všemi adresáři i zástupci z definice. Adresáře a zástupci jsou od sebe rozlišeni různými ikonami. V prostřední části je seznam konfiguračních skupin/uživatelů. Tento seznam je uspořádán podle priority od nejnižší k nejvyšší. Nejvyšší priorita je v seznamu dole. SMD Logon tedy provádí konfiguraci podle tohoto seznamu odshora dolů. V seznamu konfiguračních skupin mám možnost checkboxem měnit atribut disabled, který zakáže skupině konfiguraci až do dalšího výskytu stejné skupiny s opačným nastavením.34 Šipkami v prostředním panelu máme možnost přesouvat skupiny v seznamu a měnit jim tak prioritu. Přiřazené adresáře a zástupci jsou vidět ve stromové struktuře v pravém panelu. V tomto panelu se mohou vyskytovat celkem čtyři typy přiřazení, které jsou od sebe rozlišeni různými ikonami: -
•
34
nepřejmenovaný adresář bez povoleného dědění přejmenovaný adresář přejmenovaný adresář s povoleným děděním zástupce
Pro informaci je možno checkboxem „Display inherited items“ povolit zobrazování všech adresářů a zástupců z definice. V tomto režimu není možno měnit přiřazení.
více viz. kapitola
Stránka | 42
• • •
Přiřazení provádí po výběru příslušné položky a cíle tlačítko se zelenou šipkou. Smazání přiřazení provede po výběru tlačítko s červeným křížem. Není povoleno mazat adresáře, pod které je ještě něco přiřazeno. Tlačítka i checkboxy se zobrazují a skrývají dynamicky v závislosti na tom, jaké položky jsou v obou panelech vybrány a zda to má pro ně smysl.
Obrázek 23 Záložka Assignments SMD GUI
Stránka | 43
Obrázek 24 Zobrazení zděděných položek
4.7 Instalace V tuto chvíli nemá řešení jednotný instalátor. Nicméně konfigurace jednotlivých komponent není příliš složitá a je zjednodušena několika skripty.
4.7.1 Nastavení terminálového serveru Na terminálovém serveru je třeba zprovoznit komponenty SMD Logon, SMD Agent a SMD GUI. Pro nastavení všech nezbytných parametrů do registru slouží skript „install.ps1“. Do skriptu je potřeba přidat na začátku správné hodnoty podle požadavků administrátora. Jedná se hlavně o cestu k logům a nastavení databáze. Pro povolení spouštění SMD Logon je třeba přidat ručně hodnotu do registru tak, jak je popsáno v kapitole 4.5.1. Instalační skript zároveň smaže z registru hodnoty AppSetup některých aplikací, které nevhodně zasahují do Start Menu. Pro pozdější obnovu si ale vytvoří zálohu v cestě „HKLM:\SOFTWARE\SMD Manager\Install“. Dále je nutné nainstalovat službu SMD Agenta. K tomu je nutné využít nástroj z .NET Framework. Výsledný příkaz pak vypadá takto: %WINDIR%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe "c:\Program Files\SMD Manager\SMDAgent.exe
Tento příkaz následně otevře dialog, do kterého je třeba vyplnit přihlašovací údaje pro uživatele, pod kterým se bude služba spouštět. Tento uživatel musí mít příslušná práva do databáze. Po vytvoření ještě změníme spouštění služby na automatické. Může nastat problém se zápisem do XML souboru SMD Cache, v tom případě musíme zajistit právo zápisu uživateli, pod kterým je služba spuštěna. Stránka | 44
SMD GUI se instalovat nemusí. Stačí spustit soubor SMDGUI.exe.
4.7.2 Databáze Databáze se musí vytvořit ručně. Strukturu tabulek vytvoří skript „smdds_db_create_structure.sql“. Prázdné tabulky jsou však stále nepoužitelné a SMD GUI fungovat nebude. Pro naplnění databáze prvními daty slouží skript „smdds_db_create_data.sql“. V obou skriptech se musí na prvním řádku změnit název používané databáze podle skutečnosti.
Stránka | 45
5 Testování systému Pro praktické otestování navrženého systému bylo vybudováno testovací prostředí realizované ve virtuálním prostředí VMware Server.
5.1 Architektura K realizaci testovacího prostředí bylo třeba virtualizovat celkem čtyři servery. Router a firewall pro připojení k internetu realizovaný specializovanou linuxovou distribucí IPCop35. Přístupový server na platformě Microsoft Windows s instalovaným Citrix Web Interface a Citrix Secure Gateway, který zajišťuje přístup k publikovaným aplikacím pomocí webového rozhraní a protokolu SSL. Active Directory řadič s databázovým serverem a nakonec terminálový server s nainstalovaným Citrix XenApp 5.0 a SMD Manager. Router byl připojen jednou virtuální síťovou kartou k internetu pomocí dedikované síťové karty v hostovacím serveru. Druhá síťová karta routeru byla připojena k internímu síťovému segmentu. Testovací doména byla realizována v izolovaném virtuálním síťovém segmentu bez výchozí brány, který tak byl kompletně oddělen od okolního prostředí. Přístup k tomuto prostředí zprostředkoval přístupový server zapojení do obou síťových segmentů pomocí dvou síťových karet. Na tomto serveru je nainstalován Citrix Web Interface 5.0, který poskytuje webové rozhraní pro přístup k publikovaným aplikacím. Zabalení protokolu ICA do zabezpečené komunikace HTTPS zajišťuje Citrix Secure Gateway 3.0.1.
Obrázek 25 Citrix Web Interface – webový přístup k aplikacím
35
http://www.ipcop.org/
Stránka | 46
5.1.1 Schéma testovacího prostředí
5.2 HW a SW Konfigurace 5.2.1 Hostovací server Hardwarová konfigurace: • • •
Procesor AMD Sempron 3400+ 1,8 GHz 4 GB DDR2 RAM SATA HDD
Instalovaný software: • •
Windows Server 2003 R2 Service Pack 2 VMware Server 1.0.6
5.2.2 SMD-DC Hardwarová konfigurace: •
1 vCPU, 384 MB RAM, 20 GB HDD
Instalovaný software: • • •
Windows Server 2003 R2 Service Pack 2 Active Directory Microsoft SQL 2005 Express Edition
Stránka | 47
5.2.3 SMD-PS Hardwarová konfigurace: •
1 vCPU, 768¨MB RAM, 20 GB HDD
Instalovaný software: • • • • • • • • • • •
Windows Server 2003 R2 Service Pack 2 Terminal services Citrix XenApp 5.0 for Windows 2003 Microsoft Office 2003 Microsoft Visual Studio 2005 Microsoft SQL Server Management Studio Express Adobe Acrobat Reader 7.0 Windows PowerShell 1.0 PSPad Editor 4.5.3 PowerGUI 1.5.3.593 SMD Manager
5.3 Popis prostředí 5.3.1 Active Directory Pro realizaci bylo nutné nainstalovat a zkonfigurovat službu Active Directory36. Název domény byl zvolen „SMD“ a DNS název „smd.int“.
5.3.2 SQL Server SQL server byl nainstalován na doménovém řadiči SMD-DC ve verzi Microsoft SQL Server 2005 Express Edition. Pro SMD Manager byla na něm vytvořena databáze „SMDDB“.
5.4 Testovací metodika Testování bylo rozděleno na dvě oddělené části: • •
Testování dostupnosti – chování systému při výpadcích jednotlivých komponent Testování výkonu – jednoduchý zátěžový test pro změření délky provádění přihlašovacího skriptu.
Výstupem testů bylo zhodnocení úspěšnosti splnění požadovaných parametrů z úvodní části práce.
5.4.1 Testování dostupnosti Testování bylo zaměřeno na vlastnosti systému při výpadcích jednotlivých komponent. Byl definován seznam sledovaných vlastností a chybových stavů. Zároveň byly také testovány všechny kombinace dvou různých chybových stavů.
36
http://en.wikipedia.org/wiki/Active_Directory
Stránka | 48
5.4.1.1 Sledované vlastnosti systému 1) Dostupnost již vytvořeného Start Menu v profilu 2) Aktuálnost vytvořeného Start Menu 3) Neaplikování špatné konfigurace 4) Vytváření Start Menu v novém profilu 5.4.1.2 Testované chybové stavy a) Nefunkční SQL Server b) Prázdná SQL Databáze c) Chybějící XML Cache d) Nefunkční SMD Agent e) Syntaktická chyba v XML Cache (např. při ruční editaci) f) Ruční smazání zástupce v profilu
5.4.2 Testování výkonu Pro testování výkonu byli automaticky přihlašování 3 uživatelé. Ve vlastnostech připojení byla nastavena cesta ke skriptu, který provedl po určité době automatické odhlášení. Počet třech uživatelů byl zvolen s ohledem na velmi omezený výkon virtuálního terminálového serveru, který disponoval pouze 768 MB operační paměti a jedním procesorem. Virtualizační vrstva jako taková také výkon snižuje. Testovány byly různé varianty simulující různé možnosti přihlašování. Všem uživatelům se ve Start Menu vytvářelo cca 30 zástupců. Každá varianta byla navíc otestována s vypnutým načítáním primární skupiny. Pro relevantní výsledky měření při zakázané primární skupině nebyla žádná z konfiguračních skupin primární. Měřen byl čas potřebný na provedení skriptu spočítaný jako rozdíl mezi začátkem provádění a ukončením skriptu. Tento čas byl skriptem zapsán do logu. Celkem bylo provedeno 27 měření pro každou variantu. Ze všech hodnot byl spočítán průměr a medián. 5.4.2.1 Průběžné přihlašování Test spočíval v postupném přihlašování uživatelů. Najednou vždy probíhalo pouze jedno přihlášení. Na serveru byli současně přihlášení dva uživatelé a třetí se přihlašoval. Testovací skript: :REPEAT "C:\Program Files\Citrix\ICA Client\pn.exe" sleep 20 "C:\Program Files\Citrix\ICA Client\pn.exe" sleep 20 "C:\Program Files\Citrix\ICA Client\pn.exe" sleep 20 goto REPEAT
/APP "SMD Test1" /APP "SMD Test2" /APP "SMD Test3"
5.4.2.2 Současné přihlašování Všichni tři uživatelé se přihlašují na terminálový server současně. Stránka | 49
Testovací skript: :REPEAT start "" "C:\Program Files\Citrix\ICA Client\pn.exe" start "" "C:\Program Files\Citrix\ICA Client\pn.exe" start "" "C:\Program Files\Citrix\ICA Client\pn.exe" sleep 60 goto REPEAT
/APP "SMD Test1" /APP "SMD Test2" /APP "SMD Test3"
5.4.2.3 Přihlašování s vytvářením profilu Obě dvě předchozí varianty byly otestovány také pro případ vytváření nového profilu. Testovací skript 1: :REPEAT rd "\\smd-ps\c$\Documents and Settings\test1" /s /q "C:\Program Files\Citrix\ICA Client\pn.exe" /APP "SMD Test1" sleep 20 rd "\\smd-ps\c$\Documents and Settings\test2" /s /q "C:\Program Files\Citrix\ICA Client\pn.exe" /APP "SMD Test2" sleep 20 rd "\\smd-ps\c$\Documents and Settings\test3" /s /q "C:\Program Files\Citrix\ICA Client\pn.exe" /APP "SMD Test3" sleep 20 goto REPEAT Testovací skript 2: :REPEAT rd "\\smd-ps\c$\Documents and Settings\test1" /s /q rd "\\smd-ps\c$\Documents and Settings\test2" /s /q rd "\\smd-ps\c$\Documents and Settings\test3" /s /q "C:\Program Files\Citrix\ICA Client\pn.exe" "C:\Program Files\Citrix\ICA Client\pn.exe" "C:\Program Files\Citrix\ICA Client\pn.exe" sleep 60 goto REPEAT
/APP "SMD Test1" /APP "SMD Test2" /APP "SMD Test3"
5.4.2.4 Přihlašování s novou verzí konfigurace Test průběžného a současného přihlašování v případě výskytu nové konfigurace. Za tímto účelem byla provedena dočasná změna v logon skriptu.
Stránka | 50
5.5 Výsledky testů 5.5.1 Testy dostupnosti 5.5.1.1 Výsledek testů – tabulka úspěšnosti splnění a) a)
ANO
b)
b)
N/A
ANO
c)
c)
NE
NE
ANO
d)
d)
ANO
ANO
NE
ANO
e)
e)
NE
NE
N/A
NE
ANO
f)
f)
ANO
ANO
ANO
ANO
ANO
ANO
Legenda: a) Nefunkční SQL Server b) Prázdná SQL Databáze c)
Chybějící SMD Cache
d) Nefunkční SMD Agent e)
Syntaktická chyba v SMD Cache (např. při ruční editaci)
f)
Ruční smazání zástupce v profilu
5.5.1.2 Nefunkční SQL Server • SMD Logon používá SMD Cache, která je dostupná tak nedochází k žádné změně funkčnosti. • SMD Agent zapíše do logu informaci o nemožnosti se připojit k databázi. 5.5.1.3 Prázdná SQL Databáze • Stejný případ jako kapitola 5.5.1.2, pouze SMD Agent zapíše do logu jiný záznam. 5.5.1.4 Chybějící SMD Cache • Dojde dočasně k nevytváření Start Menu a aktualizaci stávajícího. • Tento stav vymizí v okamžiku další aktualizace SMD Cache pomocí agenta. 5.5.1.5 Nefunkční SMD Agent • Jediné omezení spočívá v možnosti neaktuální SMD Cache na serveru, ke kterému se uživatel přihlásil. Uživatel určitě nepřijde o přístup k aplikacím, ke kterým měl přístup dříve, takže se nejedná o zásadní problém. 5.5.1.6 Syntaktická chyba v SMD Cache • Dočasný problém na serveru, trvající do dalšího intervalu obnovení SMD Cache agentem. V žádném případě nepřijde uživatel o přístup k aplikacím. 5.5.1.7 Ruční smazání zástupce v profilu • Při dalším přihlášení uživatele se zástupce znova vytvoří. Stránka | 51
5.5.1.8 Nefunkční SQL Server + chybějící SMD Cache • Nedochází k aktualizaci Start Menu. • Start Menu v novém profilu se nevytvoří. • SMD Logon provede zápis o neexistenci SMD Cache do logu. 5.5.1.9 Nefunkční SQL Server + nefunkční SMD Agent • SMD Logon funguje bez chyb, protože má stále dostupnou SMD Cache. 5.5.1.10 Nefunkční SQL Server + chyba v SMD Cache • Stejný případ jako u chybějící SMD Cache. • SMD Logon provede zápis do logu s popisem chyby: 18.1.2009 23:52:14: SMD\test1,ICA-tcp#729: Error in c:\Program Files\SMD Manager\smdds.xml ! 18.1.2009 23:52:14: SMD\test1,ICA-tcp#729: Cannot convert value "System.Object[]" to type "System.Xml.XmlDocument". Error: "The 'smdds' start tag on line 2 does not match the end tag of 'group_def'. Line 13, position 5."
5.5.1.11 Prázdná SQL Databáze + chybějící SMD Cache • Stejné chování jako v kapitole 5.5.1.8. 5.5.1.12 Prázdná SQL Databáze + chyba v SMD Cache • Stejné chování jako v kapitole 5.5.1.10. 5.5.1.13 Chybějící SMD Cache + nefunkční SMD Agent • Stejný případ jako v kapitole 5.5.1.8. 5.5.1.14 Chybějící SMD Cache + smazání zástupce v profilu • V případě, že SMD Cache bude chybět v v okamžiku přihlášení, tak nedojde k vytvoření příslušného zástupce. V tomto případě stačí počkat do okamžiku obnovení SMD Cache agentem. 5.5.1.15 Nefunkční SMD Agent + chyba v SMD Cache • Stejný případ jako v kapitole 5.5.1.10. 5.5.1.16 Nefunkční SMD Agent + smazání zástupce v profilu • Vzhledem k dostupnosti SMD Cache dojde k vytvoření smazaného zástupce při dalším přihlášení automaticky
5.5.2 Testy Dostupnosti – shrnutí Z testů vyplývá, že je systém odolný proti výpadku všech komponent (diagonála tabulky). Navíc je ve většině případů odolný i proti výpadku dvou různých komponent. Jediný případ kdy systém nesplní požadavky je problém s SMD Cache v kombinaci s nemožností její aktualizace (SQL Server, databáze, agent). Ani v tomto případě však nepřijde uživatel o přístup k aplikacím, protože v profilu stále zůstává dříve vytvořené Start Menu a nedojde Stránka | 52
k jeho smazání. Bohužel v novém profilu nedojde k vytvoření Start Menu. Možným řešením takovéto situace je umístit klíčové zástupce do výchozího profilu, protože v případě problémů s SMD Cache neprovede SMD Logon smazání zástupců ani přesměrování Start Menu do nového umístění.
5.5.3 Testy výkonu – naměřené hodnoty 5.5.3.1 Postupné přihlašování
Průměr Medián
Normální stav 1,60 s 1,61 s
Bez primární skupiny 1,36 s 1,36 s
Nová konfigurace 2,85 s 2,82 s
Nová konfigurace bez primární skupiny 2,57 s 2,57 s
Nový profil 3,05 s 3,09 s
Nová konfigurace 7,98 s 8,00 s
Nová konfigurace bez primární skupiny 8,01 s 7,90 s
Nový profil 9,18 s 9,17 s
5.5.3.2 Současné přihlašování
Průměr Medián
Normální stav 3,90 s 3,93 s
Bez primární skupiny 3,79 s 3,82 s
5.5.4 Testy výkonu – shrnutí Z testů vyplývá, že za normálních okolností nedochází k výraznému zpomalení přihlašování a v testovacím prostředí se přihlášení vejde do dvou sekund. Dosaženo je toho zejména díky optimalizaci dosažené nepřepisováním již vytvořených zástupců. Dá se předpokládat, že ve skutečném prostředí s fyzickými servery bude provádění skriptu ještě rychlejší a vejde se do jedné sekundy. Zpomalení nastává pro případ vytváření nové konfigurace a nového profilu. I zde se ale skript provede do tří sekund. Ověřeno bylo i zrychlení v případě vypnutí načítání primární skupiny, které i pro testovací doménu s minimálním počtem skupin znamenalo viditelné zrychlení. Pro skutečná prostředí se stovkami a tisíci skupin bude zpomalení ještě významnější a bude nutné tedy tuto funkci vypnout. Případ současného přihlašování třech uživatelů je možno považovat za extrémní, protože tento stav v praxi nastává velmi zřídka. V testovacím prostředí došlo k značnému zpomalení, které je dáno tím, že v průběhu provádění skriptu je maximálně zatěžován procesor. Testovací terminálový server disponoval pouze jedním procesorem, takže došlo k ekvivalentnímu zpomalení téměř na trojnásobek času. Ve skutečném nasazení toto opět nehrozí. Nejen kvůli výjimečnosti situace, ale i díky tomu, že servery v dnešní době typicky disponují čtyřmi a více procesorovými jádry.
Stránka | 53
6 Zhodnocení realizace 6.1 Shrnutí požadovaných vlastností Popis vlastností tak jak byly definovány v kapitole 3.5.1: a) Skutečně dynamické Start Menu, zajištění i mazání zástupců, které již uživateli nepřináleží. - Splněno b) Vytváření definicí složek a zástupců, které se dají uživateli/skupině přiřazovat. - Splněno c) Importovací funkce pro existující zástupce. Musí fungovat i pro celé složky, aby se zástupci neimportovali po jednom. - Splněno d) Funkce se stávající infrastrukturou bez nutnosti do ní zasahovat. - Splněno e) Kompatibilita s Windows 2003. - Splněno a prakticky otestováno f) Optimalizace výkonu. Nesmí znatelně zpomalovat přihlášení při běžném provozu. - Splněno a výkonovými testy ověřeno g) Maximální transparentnost funkce, žádné proprietární neprůhledné řešení. - Splněno. SMD Logon a SMD Cache jsou plně transparentní. h) Vysoká dostupnost. Řešení musí být funkční i při výpadcích jednotlivých komponent systému. - Splněno a testy dostupnosti ověřeno. i) Uživatelská přívětivost bez nutnosti ručního skriptování. - Splněno. Konfigurace se provádí pomocí grafického nástroje SMD GUI. j) Logovací funkce pro odhalení chyb v nastavení. - Splněno. SMD Logon disponuje detailním logováním. k) Použité úložiště konfigurace musí splňovat základní předpoklady pro spolehlivý provoz, tedy zálohování a možnost vracení konfigurace. - Splněno. MS SQL server všemi vlastnostmi disponuje. l) Možnost návratu do původního stavu profilu. - Splněno. SMD Logon poskytuje „rollback“ funkci, která změny v profilu vrací. Stránka | 54
m) Řešení problému s Active Setup. - Splněno. Problémové Active Setup komponenty byly identifikovány a vyřešeny pomocí instalačního skriptu.
6.2 Závěr Celý systém byl realizován podle všech předem definovaných požadavků. V dalších vlastnostech je navíc překračuje. Stávající stav je možné považovat za výchozí stav pro další vývoj, který bude jistě pokračovat a řešení bude tak možno nasadit nejen v testovacím prostředí, ale i komerčně využít u zákazníků využívající tenkého klienta v prostředí MS Windows a Citrix. Mezi další funkce, které budou do produktu přidány, patří hlavně možnost řídit zástupce na ploše uživatele se zachováním standardní funkčnosti a také kompletní náhrada plochy zvláštní aplikací, která bude sama spouštět aplikace pomocí tlačítek. Tím se zabrání zneužívání plochy k ukládání souborů, které znamenají v terminálovém prostředí problém, protože se musí buď přenášet s profilem, nebo si vynutí přesměrovat plochu na síťovou cestu. Další vylepšení budou v SMD GUI zaměřené hlavně na správu systémů (čtení vzdálených logů, nastavování konfiguračních parametrů, simulace nastavení) a uživatelský komfort (mazání položek včetně podřízených, vícenásobné označování, přetahování položek). Nezbytnou součástí systému také musí být plně automatizovaná instalace.
Stránka | 55
7 Použitá literatura 1) Patrik Malina. Powershell Podrobný průvodce skriptováním. Computer Press, a.s. , Brno, 2007 2) Miroslav Virius. C# pro zelenáče, Neocortex spol. s r. o., 2002 3) John Sharp. Microsoft Visual C# 2005 Krok za krokem, Computer Press, a.s., Brno, 2006 4) K336 Info – pokyny pro psaní bakalářských prací. https://info336.felk.cvut.cz/clanek.php?id=504 5) Microsoft TechNet http://technet.microsoft.com 6) Microsoft Developer Network http://msdn.microsoft.com 7) Wikipedia http://en.wikipedia.org/
Stránka | 56
8 Seznam použitých zkratek AD … Active Directory DN … Distinguished Name EM … Appsense Environment Manager GPO … Group Policy Object GPP … Group Policy Preferences GUI … Graphical User Interface HKLM … HKEY Local Machine OS … Operační systém vCPU … Virtual CPU
Stránka | 57
9 Seznam příloh na CD Soubor install.ps1 logon.ps1 SMDAgent.exe SMDManager.dll SMDGUI.exe smdds_db_create_structure.sql smdds_db_create_data.sql smdds.xml smd.log smdagent.log test_vykonu.xlsx Bakalářská práce – Ondřej Lukáč, 2009.pdf
Stránka | 58
Funkce Instalační PowerShell skript SMD Logon PowerShell skript Spustitelný soubor SMD Agent Sdílená knihovna SMD Manager Spustitelný soubor SMD GUI SQL skript pro vytvoření tabulek SQL skript pro naplnění tabulek daty Vzorový XML soubor SMD Cache Příklad logu SMD Logon Příklad logu SMD Agent Tabulka s naměřenými hodnotami délky spouštění skriptu PDF dokument bakalářské práce