Archiv
Unter Windows 7 den Logon Vorgang monitoren
Mit Windows 7 ist es möglich sich selbst in einer Active Directory Umgebung mit zwei Benutzern gleichzeitig an einer Workstation anzumelden. Dies ermöglicht es den Logon Vorgang zu Troubleshooten. Ich kann z.B. in einer zweiten Session Netzwerk Monitor, Perfmon oder Process Monitor laufen lassen. Ich habe mal die Variante mit Process Monitor getestet. Anbei erstmal ein Screenshot wie es aussieht wenn zwei User gleichzeitig an Windows 7 angemeldet sind.
Erstmal suche ich mir einen Prozess aus: Ich bin mit dem User Carsten.Barth angemeldet und starte Autoruns um mir etwas zum „spielen“ auszusuchen.
Ich nehme einfach mal VMWARETray.EXE also den User Carsten.Barth abmelden und in die Administrator Session springen. Hier starte ich erstmal Procmon.exe, danach mit der Rechten Maustaste oben in die Titelleiste und Select Columns auswählen.
Nun User Name anklicken.
Nun konfiguriere ich für diese Spalte einen Filter und filtere alles weg, was ich nicht sehen möchte.
Mit Switch User springe ich zurück zur Anmeldung.
Nun melde ich mich wieder mit Carsten.Barth an. In der zweiten Session läuft der Process Monitor mit und protokolliert brav, alles was in dem Kontext des Users Carsten.Barth passiert. Zurück in der Administrator Session kann ich mit STRG+F nach meinem Task suchen.
Benutzer auch nachträglich in viele Gruppen anhand eines Template Users einfügen
In Citrix oder Remotedesktopumgebung werden Berechtigungen auf verschiedene Programme mittels Gruppen geregelt. Wenn User nun mit einer solchen Lösung arbeiten müssen, müssen diese zumindest in die Standardgruppen hinzugefügt werden. Bei neuen Usern geht das sehr einfach mit einem sogenannten Template User, der kopiert wird. Wenn man Glück hat, hat man ein Provisioning Tool im Einsatz und die Gruppenpflege wird sowieso durch die HR Abteilung erledigt. Aber was tun, wenn man kein Provisioning Tool hat und immer wieder eine große Anzahl an Gruppen einem Benutzer zuweisen muss. Als Alternative oder Zusatz gibt es natürlich auch das AGDLP oder AGUDLP Konzept. Hierauf gehe ich in diesem Artikel aber nicht weiter ein.
Als erstes legen wir einen normalen Benutzer an und nennen diesen _Template. Der Unterstrich sorgt dafür, daß er ganz oben in der OU steht. Aus Sicherheitsgründen ist dieser User natürlich deaktiviert. Dieser User wird also mit allen notwendigen Gruppen und Profileinstellungen vorkonfiguriert.
Setzt man den Basisordner auf H: \\fileserver\home$\%username% so wird dies auch auf den durch das Template angelegten User kopiert, allerdings nicht das Remotedesktop Profil.
Um einen User anhand des Templates anzulegen wählt man einfach den Template User mit der Rechten Maustaste und klickt auf kopieren.
Nun Benutzernamen etc. eingeben, darauf achten, daß er auch aktiviert wird und schon hat man einen User mit kopierten Gruppenmitgliedschaften etc.
Das ganze funktioniert prima mit neuen Benutzern aber was ist mit bereits vorhandenen Benutzern?
Um zumindest die Gruppenmitgliedschaften zu kopieren, kann man DSGET mit DSMOD pipen.
Das sieht dann so aus:
Dsget user „CN=_TEMPLATE,OU=Citrix,DC=BARTH,DC=CLOUD“ -memberof|dsmod Group addmbr „CN=CN=Anne.Wandklatsch,OU=CITRIX,DC=BARTH,DC=CLOUD“ -addmbr
Nicht ganz so komfortabel aber seit W2003 problemlos möglich und immer noch besser als jede Gruppe manuell hinzuzufügen.
Schöner währe es im AD einen neuen Menüpunkt zu haben, der diese Funktion anbietet, oder?
Es gibt die Möglichkeit das Kontextmenü in der DSA.MSC (AD User &Computer) zu erweitern. Wie das geht steht hier:
Damit der Menüpunkt auch funktioniert, muss das Skript auf dem Client oder Server auf dem DSA.MSC ausgeführt wird im Path vorhanden sein.
Also los geht s:
Kontextmenü erstellen:
ADSIEDIT starten und mit der Configuration Partition verbinden. (Wer nicht weiß was ADSIEDIT ist sollte sich erstmal damit beschäftigen bevor er hier Änderungen durchführt)
Hier wechselt man in den Reiter CN=DisplaySpecifiers. Dort findet man verschiedene Ordner für die jeweils entsprechende Sprache. Deutsch ist bekannterweise 1031 was hexadezimal 407 ist.
Hat man ein Deutsches System also in den Ordner CN=407. Wichtig ist hier die Sprache des Active Directory Users and Computers unter der der Menüpunkt erscheinen soll zu wählen.
Ein Menüpunkt der unter 407 konfiguriert wurde erscheint also nicht auf einem Englischem System.
Falls man nicht weiß welche Sprache man braucht, kann man die Sprachen in der Registry unter:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\ContentIndex\Language
Ich habe hier ein englisches System also nehme ich CN=409. Darunter wählt man CN=user-Display mit einem Doppelklick aus. Ganz oben nun auf adminContextMenu.
Hier wird nun der Menüpunkt registriert, Details im MSDN Artikel: Zahl,Beschreibung,Befehl.
Das war s schon. Die Einstellung lässt sich übrigens jederzeit wieder rückgängig machen. Die Zahl ist dabei für die Position des Menüpunktes verantwortlich.
Skript kopieren:
Nun das Skript „Template.vbs“ in einen Ordner (z.B. C:\Windows) auf den Rechner kopieren, auf dem die DSA.MSC ausgeführt wird.
Nun können wir die Gruppenmitgliedschaften auf jeden beliebigen Benutzer kopieren indem wir den Zieluser Rechts anklicken und unseren persönlichen Menüpunkt wählen.
Falls DSA.MSC während der ADSIEdit Änderung auf war einmal schließen und neu öffnen, damit die Änderung angezeigt wird.
Das ganze ohne Template User:
Natürlich benötigt man den Template User nicht unbedingt. Man kann auch im Script alles vorgeben. Das Skript CTXUSER.VBS konfiguriert nicht nur die Gruppenmitgliedschaften sondern auch direkt die Remotedesktop
Einstellungen.
Dazu wiederholen wir einfach die ADSIEDIT Schritte. Als Script gebe ich nun 11,Configure as Citrix User…,ctxuser.vbs.
AD User & Computer neu starten damit der neue Menüpunkt erscheint.
Hier nun die zwei Beispielskripts, die natürlich an das vorhandene AD angepasst werden müssen.
Template.VBS
‚ —————————-www.barth-edv.de—————————
‚ Name: template.vbs
‚ Desciption: Gruppenmitgliedschaften kopieren
‚ Author: Carsten Barth
‚ Version: 1.0
‚
‚ —————————-www.barth-edv.de—————————Set objArgs = WScript.Arguments
If objArgs.Count <> 2 Then
MsgBox „Dieses Skript kann nur aus dem Kontextmenü des AD Users & Computer ausgeführt werden!“,1,“Template Benutzergruppen kopieren“
End IfOn Error Resume Next
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Const ADS_PROPERTY_APPEND = 3
strADSPath = objArgs(0)
Set objADS = GetObject(strADSPath)
strDN = objADS.distinguishedName
strUserName = objADS.sAMAccountName
Set objUser = GetObject(„LDAP://CN=_template,OU=Citrix,DC=BARTH,DC=CLOUD„)
intPrimaryGroupID = objUser.Get(„primaryGroupID“)
arrMemberOf = objUser.GetEx(„memberOf“)
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo „The memberOf attribute is not set.“
Else
For each Group in arrMemberOf
Set objGroup = GetObject(„LDAP://“ & Group)
objGroup.PutEx ADS_PROPERTY_APPEND, „member“, Array(strDN)
objGroup.SetInfo
Next
End If‚ Display Message
MsgBox „Die Gruppenmitgliedschaften des Template Users wurden nach “ &strUserName & VbCrLf & „kopiert.“ & VbCrLf & „Bitte überprüfen Sie die Gruppenzugehörigkeiten!“, vbOKOnly + vbInformation, strUserName & “ …konfiguriert“
CTXUSER.VBS
‚ —————————-www.barth-edv.de—————————
‚ Name: ctxuser.vbs
‚ Desciption: Citrix Umgebungskonfiguration
‚ Author: Carsten Barth
‚ Version: 1.5
‚
‚ —————————-www.barth-edv.de—————————
Set objArgs = WScript.Arguments
If objArgs.Count <> 2 Then
MsgBox „Dieses Skript kann nur aus dem Kontextmenü des AD Users & Computer ausgeführt werden!“,1,“Citrix Umgebungskonfiguration“
End IfOn Error Resume Next
Const Enabled = 1
Const
Const ADS_PROPERTY_APPEND = 3strADSPath = objArgs(0)
Set objADS = GetObject(strADSPath)
strDN = objADS.distinguishedName
strUserName = objADS.sAMAccountName
‚ Modify Server Properties here… ‚
strWTSHomeDir = „\\fileserver\home$\“
strWTSProfilePath = „“
strWTSHomeDrive = „H:“
‚ Write TerminalServicesProfileTab
objADS.TerminalServicesProfilePath = strWTSProfilePath
objADS.TerminalServicesHomeDrive = strWTSHomeDrive
objADS.TerminalservicesHomeDirectory = strWTSHomeDir & strUserName
objADS.AllowLogon = Enabled
‚ Write RemoteControlTab
objADS.EnableRemoteControl = Enabled
‚ Write EnvironmentTab
objADS.ConnectClientDrivesAtLogon = Enabled
objADS.ConnectClientPrintersAtLogon = Enabled
objADS.DefaultToMainPrinter = Enabled
objADS.SetInfo
‚ Add User to Citrix Default User Groups
‚ DeskNR
Set objGroup = GetObject _
(„LDAP://CN=DESKTOP-100-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
Set objGroup = GetObject _
(„LDAP://CN=WORD-2K10-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
Set objGroup = GetObject _
(„LDAP://CN=EXCEL-2K10-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
‚ Access 2003
Set objGroup = GetObject _
(„LDAP://CN=POWERPNT-2K10-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
‚ PowerPoint 2003
Set objGroup = GetObject _
(„LDAP://CN=ACCESS-2K10-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
‚ Adobe Acrobat Reader
Set objGroup = GetObject _
(„LDAP://CN=ADOBERDR-940-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
‚ Printer Dialog
Set objGroup = GetObject _
(„LDAP://CN=PRINTDLG-100-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
‚ Internet Explorer
Set objGroup = GetObject _
(„LDAP://CN=IE-800-D,OU=Groups,OU=Citrix,DC=BARTH,DC=CLOUD„)
objGroup.PutEx ADS_PROPERTY_APPEND, _
„member“, Array(strDN)
objGroup.SetInfo
‚ Display Message
MsgBox „Der Benutzer: “ &strUserName & VbCrLf & „wurde fuer die Citrix Umgebung konfiguriert.“ & VbCrLf & „Bitte überprüfen Sie die Gruppenzugehörigkeiten und die Datenpfade!“, vbOKOnly + vbInformation, strUserName & “ …konfiguriert“
Microsoft MCITP im Selbststudium
Ich habe kürzlich meinen MCSE+S+M zum MCITP SA EA aktualisiert. Da ich seit NT 3.5 professionell mit Windows Netzwerken arbeite war das auch kein großes Problem. Seit November basieren die Prüfungen auf 2008R2 am Schluss gibt es immer Fallstudien. Diese Fallstudien finde ich persönlich super, da nicht nur Features abgefragt werden sondern praxisnah das Wissen angewandt werden muss.Hoffentlich dauert es noch lange bis die Braindumper diese Fallstudien bekommen… 🙂
Wie die meisten IT Leute hatte auch ich auf der Arbeit keine Zeit, Videos zu schauen oder Bücher zu lesen, weshalb alles in der Freizeit passieren musste. Insgesamt habe ich ca. 150 Stunden mit der Vorbereitung für die 4 Prüfungen (70-649, 70-680, 70-646 und 70-647) verbracht. Persönlich fand ich die Windows 7 am schwersten, ich dachte eine Clientprüfung könnte man einfach so machen ohne sich groß vorzubereiten, aber da wurde ich eines besseren belehrt, erster Anlauf 680 Punkte 😦 Naja hinfallen ist keine Schande also aufgestanden und nochmal. Zum Glück hatte ich ein Prometric Voucher Pack mit Second Shot gekauft und der zweite Anlauf verlief dann besser.
Quellen waren: CBTNuggets Lernvideos, Microsft Self Paced Training Kit, Technet, diverse MS-Blogs, virtual Labs und passenderweise war im November die TechED was gerade super paßte, da man hier kostenlos sehr gute Infos bekommt.
Wer jetzt zum neuen Jahr gute Vorsätze hat und sich zertifizieren möchte, dem empfehle ich folgende Webseiten:
Microsoft Virtual Labs:
http://technet.microsoft.com/en-us/virtuallabs/default.aspx
Technet EDGE Deutschland:
http://technet.microsoft.com/de-de/edge/default.aspx
Videos der TechED:
http://www.microsoft.com/europe/teched/
Windows Server® 2008 and Windows Server® 2008 R2 Technical Library
http://technet.microsoft.com/en-us/library/dd349801%28WS.10%29.aspx
Microsoft How do I Videos:
http://technet.microsoft.com/en-us/cc138021
Infrastructure Planning and Design Guide Series:
http://technet.microsoft.com/en-us/solutionaccelerators/ee382254.aspx
Microsoft Techday Videos:
Technet Videos on Demand:
http://www.microsoft.com/germany/technet/webcasts/default.mspx
Das beste Forum zu diesem Thema:
Lizenzierung in virtuellen Umgebungen
Die Lizenzierung in virtuellen Umgebungen ist nicht ganz einfach. Meistens kauft man einfach pro Prozessor eine Datacenter Lizenz und ist somit voll mit Betriebssystemlizenzen abgedeckt.
Es gibt ein offizielles Whitepaper von Microsoft:
Ich habe bei Youtube ein ganz nettes Video über das Thema gefunden:
http://www.youtube.com/watch?v=uc7mAyJdahM
Etwas komplizierter wird es wenn es um die Lizenzierung der Serversoftware wie SQL, Oracle, DB2 etc. Hier wird meistens nach den virtuellen Prozessoren lizenziert. Also die, die der VM tatsächlich zugewiesen werden.
Das muss man aber im Einzelfall mit dem Hersteller klären.
Windows 7 Bootzeit optimieren
Hallo,
hier endlich mein erster Artikel. Viele Leute ärgern sich darüber, dass Windows immer noch relativ lang benötigt um zu starten. Es gibt einige Methoden z.B. Ruhezustand oder Standby die das Booten (Bootstrap) von Windows „umgehen“. Darum geht es hier aber nicht 😉
Anbei ein paar Methoden um den normalen Startvorgang von Windows 7 zu optimieren. Einige Änderungen wirken sich auch positiv auf die Gesamtperformance des Systems aus.
Bevor es los geht, erstellen Sie sich ein Backup am besten ein Imagebasiertes Backup, hierzu bietet sich die Windows Sicherung, Acronis oder ähnliches an. Ein Systemrestorepoint ist auch keine schlechte Sache.
NTFS
Als erstes widmen wir uns dem NTFS Dateisystem, hier gibt es es seit Windows XP zwei Tricks das Filesystemhandling mit FSUTIL etwas zu optimieren:
1. 8dot3 Namen deaktivieren
2. Last Access deaktivieren
Die 8.3 Namenserstellung kann man denke ich ohne lange zu überlegen abschalten, nur einige 16 Bit Anwendungen benötigen diese.
Hierzu eine CMD als Administrator starten und folgenden Befehl eingeben:
fsutil 8dot3name set 1
Weitere Infos gibt es im Technet von Microsoft:
http://support.microsoft.com/kb/121007/de
Der nächste Befehl deaktiviert den last access stamp in einer Datei. Ich persönlich brauche diese Funktion nicht. Für jede Datei protokolliert Windows den Zeitpunkt des letzten Zugriff, das kann man im Explorer unter Dateieigenschaften anzeigen. Falls die Änderung durchgeführt wird und man das System neu startet werden diese Zeiten nicht mehr aktualisiert.Entscheidet selbst und überspringt evtl. diesen Schritt.
fsutil behavior set disablelastaccess 1
http://technet.microsoft.com/de-de/library/cc785435%28WS.10%29.aspx
MSCONFIG
Windows nutzt zum booten standardmäßig nur einen Prozessor / Core. Wenn man ein System mit mehreren Prozessoren oder Cores hat, kann man mit MSCONFIG Windows dazu bringen beim Bootvorgang alle Cores zu nutzen:
Start / Ausführen (WIN+R)
MSCONFIG
eingeben und OK wählen.
Den Reiter Start wählen
Die Schaltfläche Erweiterte Optionen wählen
Unter Prozessoranzahl den höchstverfügbaren Wert nehmen. Mein i5 hat 4 Cores:
Außerdem kann man mit MSCONFIG den GUI Mode abschalten, sprich es wird kein Windows Logo mehr beim starten angezeigt. Das geht unter dem Reiter Start:
AUTORUNS
Den nächsten Schritt könnte man fast auch mit MSCONFIG machen, ich bevorzuge aber Autoruns von Sysinternals da es einige Möglichkeiten mehr bietet, z.B. kann man hier auch Treiber deaktivieren.
Wieder Start / Ausführen und folgendes eingeben:
http://live.sysinternals.com/autoruns.exe
Unter Everything sieht man so ziemlich alles was beim Bootvorgang geladen wird. Es empfiehlt sich erst einmal die Konfiguration zu speichern und dann erst nicht benötigte Programme durch einen Klick auf die Checkbox zu deaktivieren. Klassiker sind hier z.B. SunJavaUpdateSched, Quick Time Task etc. Ihr müsst hier selbst entscheiden was wirklich benötigt wird, jedes System und jede Anforderung ist anders. Anfängern empfehle ich, sich erstmal auf den Reiter Logon zu beschränken. Nach diesem Schritt empfiehlt sich der erste Neustart.
Smart Utility
Windows 7 hat jede Menge Dienste, viele davon benötigt ein Standardbenutzer garnicht. Dienste müssen nicht nur gestartet werden sondern brauchen auch beim Betrieb Ressourcen. Man sollte natürlich nur Dienste abschalten, die man wirklich nicht benötigt. Der Computerbrowser ist z.B. ein Dienst auf den man meistens verzichten kann. Wer keine Dateien freigeben möchte schaltet den Serverdienst ab, wer nicht drucken muss die Druckwarteschlange 😉 Aber zum Glück gibt es ein Tool, damit wir hier nicht alle Dienste erläutern müssen:
Der einfachste Weg Dienste unter Windows zu optimieren ist das Tool Smart, welches man hier findet:
http://www.thewindowsclub.com/smart-a-utility-for-tweaking-windows-7-vista-xp-services
Das Programm ist selbsterklärend eine Liste der Tweak Settings findet man hier:
http://www.blackviper.com/Windows_7/servicecfg.htm
Danach bitte booten.
Performance Toolkit
Der letzte Schritt erfordert etwas Zeit, bringt aber auch einiges. Hierzu benötigt man das Microsoft Performance Toolkit. Das gibt es hier:
http://msdn.microsoft.com/en-us/performance
Nachdem alles installiert ist wieder ein CMD als Admin starten und folgenden Befehl eingeben:
xbootmgr -trace boot -prepSystem –verboseReadyBoot
Danach bootet das System 6x. Hierbei wird der Bootvorgang protokolliert und optimiert.
Falls jemand noch weitere Tips hat wie man die Startzeit von Windows 7 optimiert. Schreibt mir gerne eine Nachricht. Ich freu mich auch, wenn Ihr eure Zeiten für den Bootvorgang vorher / nachher nach diesen Änderungen postet.
CBA 09.12.2010