Problemstellung
•Betreuung eines Schulnetzes auf Windows Basis
•Es gibt ca. 500 Rechner zu administrieren
•Netzstruktur an der G18
•Konfiguration und Modifikation der Einzelplatz-PC‘s und Server-Rechner
Problemstellung
• Windows als Front-End Betriebssystem:
• liegt voll im Trend bedienungsfreundlicher intuitiver Benutzeroberflächen
• stellt sich hinsichtlich der Wartung als unfreundlich heraus.
• Das gilt für die Bereiche:
Problemstellung
• Benutzerverwaltung
• Datenverwaltung
• Applikationsverwaltung
• Softwareverteilung
Lösungsansätze• 3thd Party Tools
– Vorteil: Ebenfalls meist intuitiv bedienbar– Nachteil: Teuer, nicht immer auf das System
abgestimmt, eingeschränkter Funktionsumfang
• Windows Oberfläche– Vorteil: Große Flexibilität, gut bedienbar– Nachteil: Fehleranfällig, zeitaufwendig
• Scripte– Vorteil: Kostenneutral, einfach, sicher, flexibel– Nachteil: Einarbeitung erforderlich, Vorkenntnisse
notwendig
Lösungsansätze• Bevorzugte Scriptsprachen und Windows
– Batch-Programmierung (z.B. Logon-Scripte)– WSH (Windows Scripting Host) mit
• VBScript oder JScript)
– Visual Studio mit Visual C oder Visual Basic
• Scripte sind zunächst stets Konsolenan-wendungen, d.h. sie lassen den gewünschten Bedienungskomfort vermissen!
Lösungsansätze
• Benutzerverwaltung mit VBScripten
• Datenverwaltung mit VBScripten
• Applikationsverwaltung mit VBScripten
WSH-Versionen• NT4.0 mit Option Pack 4 WSH 1.0• Windows 98 WSH 1.0• Windows 2000 WSH 2.0• Windows XP WSH 5.6• Weitere Informationen unter:
– http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/wsh/htm/wsVersion.asp
– http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/wsh/htm/WSHToc.asp
– http://msdn.microsoft.com/msdnmag/issues/02/05/wsh/default.aspx
WSH-Dokumentationen
MSDN-Seiten• WSH allgemein:
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/wsh/htm/wsVersion.asp
• Scripting:– Einführung:http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001169– Beispiele:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/default.asp
WSH-Dokumentationen
• WMI (Windows Management Instrumentation)– Einführung und Beispiele:– http://msdn.microsoft.com/library/default.asp?url=/library/
en-us/wmisdk/wmi/scripting_in_wmi.asp
• ADSI (Active Directory Service Interface)– http://msdn.microsoft.com/library/default.asp?url=/library/
en-us/netdir/adsi/using_adsi.asp
• ISA SDK(Internet Security and Acceleration Sever SDK)http://msdn.microsoft.com/library/default.asp?url=/library/en-us/isa/isaabout_0ek4.asp
Objektorientierung unter WSH• Benutzerobjekte
– Binding Set objOU = GetObject (“ LDAP://OU=Klassen, DC=G18,DC=de“)
– EinrichtenSet objUser = objOU.Create("User", "cn=EDLAND")objUser.Put "sAMAccountName", „EdLand„objUser.SetInfo
– Eigenschaften ändernobjUser.ChangePassword "i5A2sj*!", "jl3R86df„
– Liste der Eigenschaftenhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/netdir/adsi/iadsuser_property_methods.asp
Objektorientierung unter WSH• Dateiobjekte
– EinrichtenSet objFSO = CreateObject ("Scripting.FileSystemObject")Set objFolder = objFSO.CreateFolder("C:\FSO")
– VerändernSet objFSO = CreateObject("Scripting.FileSystemObject")objFSO.MoveFolder "C:\Scripts" , "\\helpdesk\management„
– LöschenobjFSO.DeleteFolder("C:\FSO")
Objektorientierung unter WSH• ISA-Regeln
– Server verbindenset isa = CreateObject("FPC.Root","Epsilon")ISA.RefreshSet array1 = isa.Arrays("Epsilon")
– Regel einrichtenSet rules = array1.ArrayPolicy.ProtocolRulesSet rule = rules.Add(Klasse)
Objektorientierung unter WSH– Eigenschaften festlegen
rule.Action = fpcRuleActionDenySet UserAccount = rule.AppliestoAccountsrule.AppliesToMethod = fpcAppliesToUsersSet NewUserAccount = UserAccount.Add("G18.de\G_"&Klasse, fcpInclude)rule.ProtocolSelectionMethod = fpcAllExceptSpecifiedProtocolsrule.SpecifiedProtocols.Add ("HTTP")rule.SetAppliesAlwaysrule.Save
– Regel freischalten/sperrenrule.Enabled= True/False
Beispielscript• Arbeitsweise festlegen
Option Explicit
• Variablen deklarierenDim adsRootContainer...
• Konstanten deklarierenConst ToplevelDomain="de„....
Beispielscript• Wertzuweisungen
AbteilungsOu=AbteilungKlassenbezeichnung=KlasseKlassenGruppe="G_"&KlasseFreigabename=Benutzer&"$„Profilverzeichnis=\\thomas\profile\IT1-ThhaegBenutzerverzeichnis=Basisverzeichnis & Hauptverzeichnis&"\"&Klasse&"\"&Benutzer
• BearbeitungsmodusOn Error Resume Next
Beispielscript• Binding
Err.ClearSet adsRootContainer = GetObject("LDAP://dc="&SubDomain1&",dc="&TopLevelDomain)Err.Clear
Beispielscript• OU einrichten
Set Temp = GetObject("LDAP://ou="&BasisOu&",dc="&SubDomain1&",dc="&TopLevelDomain)If Err=0 ThenSet adsOU1 = GetObject("LDAP://ou="&BasisOu&",dc="&SubDomain1&",dc="&TopLevelDomain) elseSet adsOU1 = adsRootContainer.Create("organizationalUnit", "ou="&BasisOu)adsOU1.SetInfoEnd If
Beispielscript• Gruppen einrichten
Err.ClearSet Temp = GetObject("LDAP://cn="&Gruppe_Schueler&",ou="&BasisOu&",dc="&SubDomain1&",dc="&TopLevelDomain)If Err=0 ThenSet adsGroup0 = GetObject("LDAP://cn="&Gruppe_Schueler&",ou="&BasisOu&",dc="&SubDomain1&",dc="&TopLevelDomain)elseSet adsGroup0 =adsOU1.Create("group", "cn="&Gruppe_Schueler)adsGroup0.Put "sAMAccountName", Gruppe_SchueleradsGroup0.SetInfoEnd If
Beispielscript• Benutzer einrichten
Err.ClearSet Temp = GetObject("LDAP://cn="&Klassengruppe&",ou="&Klasse&",ou="&AbteilungsOu&",ou="&BasisOu&",dc="&SubDomain1&",dc="&TopLevelDomain)If Err=0 ThenSet adsGroup1 = GetObject("LDAP://cn="&Klassengruppe&",ou="&Klasse&",ou="&AbteilungsOu&",ou="&BasisOu&",dc="&SubDomain1&",dc="&TopLevelDomain) elseSet adsGroup1 =adsOU3.Create("group", "cn="&Klassengruppe)adsGroup1.Put "sAMAccountName", KlassengruppeadsGroup1.SetInfoEnd If
Beispielscript
• Eigenschaften des Benutzers setzenadsUser1.Put "sAMAccountName", BenutzeradsUser1.Put "userPrincipalName", Benutzer&"@"&SubDomain1&"."&TopLevelDomainadsUser1.SetInfoadsUser1.GetInfoadsUser1.FullName =VollnameadsUser1.AccountDisabled = FalseadsUser1.LoginScript = LogonScript
Beispielscript• adsUser1.Homedirectory =
"\\"&Server&"\"&FreigabenameadsUser1.HomeDrive = HomelaufwerkadsUser1.Description = KlassenbezeichnungadsUser1.Profile = ProfilverzeichnisadsUser1.PasswordRequired = TrueadsUser1.SetPassword PasswortadsUser1.Put "pwdLastSet", 0adsUser1.SetInfoadsGroup0.Add(adsUser1.ADsPath)adsGroup1.Add(adsUser1.ADsPath)End If
Beispielscript• Homelaufwerk erstellen
If Not Ordner.FolderExists(Benutzerverzeichnis) Then Ordner.CreateFolder(Benutzerverzeichnis) Set wshShell =WScript.CreateObject("WScript.Shell") wshShell.Run "cacls "&Benutzerverzeichnis&" /t /e /p Administratoren:F System:F G_Lehrer:C "&Benutzer&":C", 0,TrueErr.Clear
Beispielscript• Freigabe des Homelaufwerks einrichten
Set Services = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & Server & "\root\cimv2")Set Share = Services.Get("Win32_Share")Err_Share=Share.Create (Benutzerverzeichnis, Freigabename, FILE_SHARE,MAXIMUM_CONNECTIONS, Freigabebemerkung)End If
• Msgbox "Script erfolgreich ausgeführt! "• Wscript.Quit
Wo bleibt der Bedienungskomfort?
• Forderung nach Flexibilität– Manuelle Anpassung der Scripte
• Forderung nach Bedienungsfreundlichkeit– Eingabemasken
• Forderung nach Sicherheit und Fehlervermeidung– Eingabeüberprüfung und Syntaxprüfung
Benutzermanager für AD• Leistungsmerkmale
– Anlegen von Gruppen und OU‘s– Anlegen von einzelnen Benutzern– Anlegen von Benutzergruppen– Anlegen von beliebig vielen Benutzern aus
einer Textdatei mit unterschiedlichen Formaten(Import aus Winschool)
– Verschieben von Benutzern mit Homelaufwerken
– Verschieben von Benutzergruppen
ISA-Verwaltung für Lehrer
• Leistungsmerkmale– Sperren des Internetzugangs (Klassenweise)– Freischalten des Internetzugangs
(Klassenweise)– Freischalten des Intranetzugangs
(Klassenweise)– Sperren des Intranetzugangs (Klassenweise)
ISA-Admin-Verwaltung
• Leistungsmerkmale– Speeren aller Regeln– Freischalten aller Regeln– Löschen aller Regeln (Aufräumen)– Anlegen neuer Regeln mit Active Directory-
Abgleich
Fazit
• Ohne Einarbeitung ist die Nutzung von Scripten nicht möglich
• Zeitersparnis ist auf längere Sicht enorm
• Schulspezifische Lösungen sind relativ kostenneutral zu realisieren
• Verwaltung des Schulnetzes ist sicherer und transparenter.
Vielen Dank für Ihre Aufmerksamkeit