Office 2010 Einstellungen bei Roaming Profiles “mitnehmen”

In letzter Zeit haben uns einige Support-Anfragen erreicht, welche folgende Problematik beinhalteten:

Bei der Verwendung von Roaming Profiles werden userspezifische Änderungen an der GUI der Office 2010 Produkte nicht zwischen Computersystemen übernommen.

Hierzu zählen neben Änderungen an der Quick-Access-Toolbar (QAT) (s. Abb.), auch Änderungen an den Ribbons, dem Menüband von Office 2010.

Quick Access Toolbar (QAT) am Beispiel von Word 2010

Das Verhalten, dass Veränderungen der GUI von Office 2010 nicht zwischen Computersysteme verteilt werden, ist bereits aus älteren Distributionen bekannt.
Für Office 2007 gibt es einen Hotfix, den Sie im KB-Artikel Quick Access Toolbar files for 2007 Office applications do not roam with your profile finden. Bitte beachten Sie, dass der deutsche Artikel automatisch übersetzt wurde und sich daher teilweise etwas komisch anhören kann!

Dieser Blogeintrag behandelt im Folgenden ausschließlich Office 2010!
Die Ursache des oben genannten Problems liegt darin begründet, dass Einstellungen der QAT bzw. der GUI bei Office im nicht-geroamten Teil des User-Profils abgelegt werden. Bei Office 2010 sind die Einstellungen in den customUI-Dateien enthalten, welche unter folgenden Pfaden zu finden sind:

C:\Dokumente und Einstellungen\ username \Local Settings\Application Data\Microsoft\Office [Windows XP, Windows Server 2003]

bzw.

C:\Benutzer\ username \AppData\Local\Microsoft\Office [Windows Vista, Windows Server 2008, Windows 7]

Zur Lösung des oben genannten Problems gibt es zwei Ansätze:

  1. Für bereits bestehende Office 2010 Installationen kann man sich mittels einer Gruppenrichtlinien-Einstellung behelfen, die in den Administrativen Vorlagen von Office enthalten ist. Die Administrativen Vorlagen werden als seperater Download im Microsoft Download Center bereitgestellt [Office 2010 Administrative Template files (ADM, ADMX/ADML) and Office Customization Tool]. Bitte beachten Sie, dass die ADM-Vorlagen zunächst im Gruppenrichtlinien-Editor importiert werden.
  2. Für das Office-2010-Deployment, also das automatische Verteilen des Office-Pakets auf Systeme im Netz, kann man sich des Office-Anpassungstools bedienen. Hiermit ist die Erstellung einer Setup-Anpassungsdatei (MSP-Datei) möglich, die die Grundlage für eine automatisierte Installation von Office 2010 bildet. Die MSP-Datei enthält Konfigurationseinstellungen, sodass die Installation für die Benutzer völlig transparent erfolgen kann. Weitere Informationen zum Office-Anpassungstool und dessen Möglichkeiten finden Sie im Technet-Artikel Office-Anpassungstool in Office 2010.

Beide Ansätze haben zur Folge, dass die customUI-Dateien mit ins Roaming Profile übernommen werden!
Im Folgenden nun das genaue Vorgehen für die beiden oben genannten Fälle!

1. Setzen der Einstellung mittels Gruppenrichtlinie

Die Gruppenrichtlinieneinstellung finden Sie im Gruppenrichtlinien-Editor nach erfolgtem Import der Administrativen Vorlagen für Office 2010 unter folgendem Pfad:

Benutzerkonfiguration -> Administrative Vorlagen -> Klassische administrative Vorlage -> Microsoft Office 2010 System -> Global Options  -> Customize

Die Einstellung heißt hier “Allow roaming of all user customizations”.

Die gewünschte Einstellung im Gruppenrichtlinien-Editor

2. Verwenden des Office-Anpassungstools

Das Office-Anpassungstool starten Sie über die Setup.exe des Office 2010 Installationsmediums mit dem Parameter /admin. Die nötige Einstellung bezüglich des Roamings von Benutzeranpassungen finden Sie unter

Features -> Benutzereinstellungen ändern -> Microsoft Office 2010 -> Globale Optionen -> Benutzerdefiniert.

Aktivieren Sie hier den Eintrag “Roaming aller Benutzeranpassungen erlauben”.

Office 2010 Anpassungs-Tool

Die gewünschte Einstellung im Office-Anpassungstool

 

Veröffentlicht unter Allgemein, Microsoft Office | Verschlagwortet mit , , , | Hinterlasse einen Kommentar

Attribute im AD verstecken und eigene Attribute erstellen

In einer normalen AD-Umgebung kann jeder Benutzer Attribute aus dem AD auslesen. Dies ist allerdings nicht gerade wünschenswert, da so auch eventuell private Informationen allen Benutzern zugänglich sind. An Universitäten wäre zum Beispiel die Matrikelnummer ein solches schützenswertes Attribut.

Um das Verstecken eines solchen Attributs zu realisieren gibt es jetzt 2 Möglichkeiten:

Man nimmt ein bereits existierendes Attribut im AD und versteckt es, oder man erstellt sich ein eigenes Attribut Matrikelnummer. Hierbei ist zu beachten, dass so genannte „Base Schema Attributes“ gibt, die nicht versteckt werden können.

Ist das Attribut ein Base Schema Attribut?

  • Man öffnet ldp.exe (Start -> Ausführen -> ldp.exe)
  • Über Connection -> Bind verbindet man sich zu seiner Domäne
  • Mit View-> Tree -> BaseDN: CN=Schema,CN=Configuration,DC=Domain,DC=local bekommt man eine Liste der Attribute des ADs
    (hierbei ist Domain und local durch IHREDOMAIN und IHREENDUNG zu ersetzen)
  • Man navigiert zu dem gewünschten Attribut, zum Beispiel „Employee-ID“
  • Ein Doppelklick zeigt rechts die Informationen des Attributs an
  • Steht hier systemFlags 0×10 = (FLAG_SCHEMA_BASE_OBJECT); so kann das Attribut nicht versteckt werden

Verstecken eines Attributs

Um ein Attribut zu verstecken, muss man folgende Schritte ausführen:

  • Man öffnet ADSI Edit (Start -> Ausführen -> adsiedit.msc)
  • und navigiert über Schema zu dem gewünschten Attribut
  • Ein Doppelklick öffnet die Eigenschaften des Attributs
  • Hier trägt man unter searchFlags den Wert 128 ein und bestätigt mit OK

Nun können nur noch Administratoren das Attribut sehen.

Erstellen eines eigenen Attributs

Um ein eigens Attribut zu erstellen öffnet man die MMC über Start -> Ausführen -> mmc

Hier fügt man über File -> Add/Remove Snap-in… -> Add… das Snap-in Active Directory Schema hinzu. (Falls dieses Fehlen sollte, kann man es wie unter [1] beschrieben installieren)

Nun erweitert man Active Directory Schema. Mit einem Rechtsklick auf den Ordner Attributes -> Create Attribute… und dem Bestätigen der Sicherheitswarnung kommt man zum Dialog zum Erstellen eines neuen AD-Attributs. Hierbei sollte man die Microsoft Richtlinien zur Namensgebung unter [2] beachten Die Eintragungen könnten zum Beispiel so aussehen:

  • Gemeinsamer Name: Matrikel-Nummer
  • LDAP-Anzeigename: matrikelNummer
  • Eindeutige X500-OID: %oidgen%.2.1
  • Beschreibung: Matrikelnummer
  • Syntax: Ganze Zahl
  • Minimum: 0
  • Maximum: 999999999

%oidgen%2.1 steht hierbei für ein Script von Microsoft. Es schlägt vor, wie die neue OID aussehen soll
Den Quelltext finden sie hier: oidgen

Nach Bestätigen der Eingabe hat man ein neues AD-Attribut „matrikelNummer“ erstellt.
Nun muss man dieses noch den Benutzern hinzufügen. Hierzu öffnet man den Ordner Classes. Ein Doppelklick auf users öffnet die Eigenschaften. Im Tab Attributes kann man über Add… nun das neu erstellte Attribut matrikelNummer hinzufügen. Nun nur noch alle Dialoge und Fenster mit OK schließen.

Um das neu erstellte Attribut zu verstecken geht man wie oben beschrieben vor und setzt searchFlags auf den Wert 128.

Das neue Attribut anzeigen und editieren

Im AD hat nun jeder Benutzer ein Attribut matrikelNummer, allerdings wird es in Active Directory Users and Computers (ADUC) noch nicht angezeigt und man kann es hier auch noch nicht bearbeiten. Um es nur anzuzeigen, genügt es der tabellarischen Ansicht eine Spalte Matrikelnummer hinzufügen:

Hierzu öffnet man ADSIEdit (Start –> Ausführen -> adsiedit.msc) und navigiert je nach Sprache des Systems zu einem der folgenden Punkte:

(deutsch)            – Configuration -> CN=DisplaySpecifieres -> CN=407 -> CN=container-Display
(englisch)            – Configuration -> CN=DisplaySpecifieres -> CN=409 -> CN=container-Display

Hier fügt man unter extraColumns den Eintrag
matrikelNummer, Matrikelnummer, 1,-1,0
hinzu und schon wird das zuvor erstellte Attribut matrikelNummer in einer zusätzliche Spalte im ADUC angezeigt.

Um eine solche Spalte nicht unter Users sondern in den jeweiligen OUs zu erhalten muss man das Ganze an einer anderen Stelle eintragen:

(deutsch)            – Configuration -> CN=DisplaySpecifieres -> CN=407 -> CN=organizationalUnit -Display
(englisch)            – Configuration -> CN=DisplaySpecifieres -> CN=409 -> CN=organizationalUnit -Display

Wenn man den Eintrag allerdings nicht nur sehen sondern auch ändern möchte, sollte man sich einen zusätzlichen Kontextmenüeintrag anlegen:

Hierzu benötigen wir zu aller erst ein kleines Skript, welches das Attribut ausließt, es anzeigt und Änderungen zurück ins AD schreibt. Eine sehr einfache Variante wäre folgender Quelltext:

Option Explicit
Dim wshArguments, objUser, objSchemaMatrikelNummer, strCurrentMatrikelNummer, strMatrikelNummer, intMaxLen
 
On Error Resume Next
 
Set wshArguments = WScript.Arguments
Set objUser = GetObject(wshArguments(0))
Set objSchemaMatrikelNummer = GetObject("LDAP://schema/matrikelNumber")
 
intMaxLen = objSchemaMatrikelNummer.MaxRange
'intMaxLen = 100000
 
If objUser.matrikelNummer <> "" Then
    strCurrentMatrikelNummer = objUser.matrikelNummer
Else
    strCurrentMatrikelNummer = "empty"
End If
 
strMatrikelNummer = InputBox( _
    "Die aktuelle Matrikelnummer lautet " & strCurrentMatrikelNummer & vbCrLf & _
    vbCrLf & _
    "Tragen Sie bitte die neue Matrikelnummer ein (1 bis " & intMaxLen & " Zeichen)", _
    Right(objUser.Name, Len(objUser.Name) - 3) & " Matrikelnummer", _
    objUser.matrikelNummer)
 
If strMatrikelNummer = "" Then WScript.Quit 'User clicked Cancel
 
If Len(strMatrikelNummer) > intMaxLen Then
    MsgBox "Die neue Matrikelnummer ist zu lang und wird somit nicht gespeichert.", _
        vbCritical, "Fehler"
Else
    Err.Clear
    objUser.matrikelNummer = strMatrikelNummer
    objUser.SetInfo
    If Err Then MsgBox "Die neue Matrikelnummer wird nicht gespeichert.", _
        vbCritical, "Fehler"
End If

Diesen Quelltext speichert man nun an einem beliebigen Ort PFAD als matrikelNummer.vbs ab.
Nun öffnen man wieder ADSIEdit (Start -> Ausführen -> adsiedit.msc) und navigiert je nach Sprache des Systems zu einem der folgenden Pfade:
(deutsch)            – Configuration -> CN=DisplaySpecifieres -> CN=407 -> CN=user-Display
(englisch)            – Configuration -> CN=DisplaySpecifieres -> CN=409 -> CN=user-Display

Hier fügt man unter dem Punkt adminContextMenu folgenden Eintrag hinzu:

2, Matrikelnummer, PFAD\matrikelNummer.vbs

Hierbei kann man die 2 durch jede beliebige, noch nicht in den Einträgen auftauchende, Zahl ersetzen, es verändert sich lediglich die Position im Kontext Menü.

Nun hat man über das Kontextmenü des Benutzers eine Möglichkeit die Matrikelnummer direkt zu ändern.

Weiterführende Links:

[1] http://technet.microsoft.com/de-de/library/cc755885(WS.10).aspx
[2] http://technet.microsoft.com/de-de/library/cc759633(WS.10).aspx

Veröffentlicht unter Active Directory | Verschlagwortet mit , , , , , , , , | 2 Kommentare

TechEd Europe 2010 Berlin: Tag 4

Hallo, 

wieder waren wir morgens um 9 Uhr auf der TechEd um die Vorträge am vorletzten Tag zu genießen. 

Den Tag hat Matthias bei einem Vortrag über fortgeschrittene Automatisierungsmöglichkeiten mit Windows Powershell 2.0 und ich mit einem Überblick über FIM 2010 eröffnet. In der nächsten Session haben wir uns zu einem Vortrag entschlossen, der dem Publikum einen tieferen Einblick in das Thema Hochverfügbarkeit von Exchange Server 2010 (SP1) gegeben hat. Weiter ging es bei Matthias mit einem Vortrag zum Troublehooting von Direct Access und bei mir zur Cloud Security. 

In der Mittagspause ist Matthias einigen Mitarbeitern des KIT und Kunden des ESCde über den Weg gelaufen, u.a. Ralf Wigand (MVP Active Directory), mit denen er zum Essen gegangen ist. In dieser Zeit habe ich einen Vortrag über die 10 häufigsten Fehler beim Backup von virtualisierten Umgebungen gehört, wodurch meine Mittagspause ziemlich kurz geraten ist. 

Nach der Pause haben wir zusammen einen unterhaltsamen Vortrag über das Finden von Sichheitslücken in einer Microsoftumgebung und welche Punkte beachtet werden sollten, damit die Sicherheitslücken minimiert werden, gehört. Als Nächstes interessierte sich Matthias für einen Vortrag über Troubleshooting von Gruppenrichtlinien. Ich habe mir in dieser Zeit, wie nicht anders zu erwarten, einen Vortrag zum Thema Securing the Cloud angehört. 

Zum Abschluss haben wir noch knapp 1 Stunde in der Lab Zone, um die fehlenden Labs zu machen, verbracht. 

Abends waren wir wieder in unserem Stammrestaurant, bei dem wir wieder ein leckeres Essen geniessen durften.

Veröffentlicht unter Allgemein | Verschlagwortet mit | Hinterlasse einen Kommentar

TechEd Europe 2010 Berlin: Tag 3

Hallo zusammen,

wie nicht anders zu erwarten, ging es am nächsten Tag wieder ab 9 Uhr morgens mit den spannenden Vorträgen los.

Ich habe mir zuerst den Vortrag von Ulf B. Simon-Weidner (MVP) bezüglich kritischer Vorgänge im Active Directory entschlossen. In erster Linie ging es um AD-Veränderungen bei forestprep oder adprep, wie die Umgebung vorbereitet werden sollte und was beim Auftreten eines Fehlers zu tun ist. Hilfreich waren auch die vielen Tipps aus seiner Erfahrung bei den vielen Kunden.

Danach ging es mit Matthias zusammen zu einem Vortrag über Lync Server 2010 von Ilse Van Criekinge, die mit ihrem unterhaltsamen Vortragsstil das Publikum mitgerissen hat. Als nächstes hat Matthias einen Vortrag zu den neuesten Features von Windows Azure und ich über die Angriffe bei der Programmierung von Webapplikationen und mögliche Lösungen, das als interaktive Session im kleinen Publikumskreis durchgeführt wurde, besucht.

Interactive Session

In der Mittagspause hatten wir zunächst eine kurze Session bezüglich der Sicherheit bei Datenübertragung und Verschlüsselung mit dem Titel Is This Secure Enough? angehört. In der 30 minütigen Pause haben wir wieder ein sehr leckeres Essen genießen dürfen.

Danach ging es für Matthias mit einem Vortag zu UAG und DirectAccess weiter und bei mir zu der Lab Zone, in der ich einige Sessions zu Lync Server 2010 durchgemacht habe. Den Tag haben wir mit dem super Vortrag Failover Clustering & Hyper-V: Planning your Highly-Available Virtualization Environment von Symon Perriman, Program Manager on the Windows Server Clustering and High-Availability team, und Joachim Nasslander abgeschlossen.

Unseren kulinarischen Geheimtipp haben wir in der Nähe der S-Bahn Station Savignyplatz in Form des italienischen Restaurants petrocelli’s bar entdeckt. Das Essen hat uns am gestrigen Tag so gut geschmeckt, dass wir heute kein anderes Ziel für das Abendessen im Sinn hatten

Veröffentlicht unter Allgemein | Verschlagwortet mit | Hinterlasse einen Kommentar

TechEd Europe 2010 Berlin: Tag 2

Hallo zusammen,

wie im letzten Eintrag von Matthias bereits angekündigt, standen uns am zweiten Tag technische Vorträge zu den verschiedensten Themengebieten zur Auswahl. Ab 9 Uhr morgens ging es mit den Vorträgen los, die im Vergleich zum letzten Jahr statt 1.5 Std „nur“ 1 Stunde gedauert haben. Matthias hat sich zunächst die Vorträge zu den Themen Deployment Tools und zu IT Architektur angehört. Ich habe mich zunächst für einen Vortrag zum Thema Private Cloud Computing entschlossen, in dessen Anschluss ich eine sehr interessante Unterhaltung mit dem Gastredner Andrew Smith, Geschäftsführer Avanade Deutschland, geführt habe. Danach gab es Sessions zu Microsoft Lync sowie einen Vortrag von Ross Smith IV bzgl. Exchange 2010 SP1 Upgrade und Coexistence.

Nach diesen Vorträgen gab es um 13 Uhr Mittagspause. Es hat uns sehr gefreut, dass unsere Kunden aus Aachen in Person von Herrn Paetzold und Herrn Mathieu unseren Blog verfolgt haben und wir uns alle zum Mittagessen getroffen haben. Es war eine sehr schöne Erfahrung einen jahrelangen Kunden nun auch persönlich kennenzulernen. Microsoft hat für ein klasse Catering gesorgt, so dass bei uns allen kein Wunsch offen blieb.

Unsere Wege trennten sich nach der 1,5 stündigen Mittagspause. Matthias hörte einen Vortrag zu System Center Service Manager zur Umsetzung von ITIL und MOF Standards. Ich habe mich für den Vortrag zu Live@edu entschlossen um einen Überblick zu bekommen wie es bei dem Publikum ankommt und noch einige Details bzgl. diesem Thema zu erhalten.

In der folgenden einstündigen Pause nutzen wir die Zeit in der Lab Zone um noch ausstehende Hands-On Labs durchzumachen. Matthias entwickelte mit der guten Anleitung eine weitere App für Windows Phone 7 und ich bildete mich in Sachen Advanced Group Policy Management weiter.

Der zweite Tag auf der TechEd haben wir mit den letzten zwei Vorträgen abgeschlossen. Und zwar interesierte sich Matthias für Windows Server 2008 R2 SP1 Dynamic Memory sowie AppLocker. Ich habe mein Wissen bezüglich der Neuerungen für Exchange Server 2010 SP1 Archiving, Retention und Discovery sowie Information Protection mit AD RMS erweitert.

Abschließend fanden wir beide, dass bei manch einem Vortrag die eine Stunde Redezeit doch sehr knapp bemessen war und wir gerne viel länger dem Sprecher zugehört hätten.
Zum Schluss noch der Link zur Keynote von Brad Anderson vom Montag.

Veröffentlicht unter Allgemein | Verschlagwortet mit | Hinterlasse einen Kommentar

TechEd Europe 2010 Berlin: Tag 1

Hallo aus Berlin!

Heute morgen in aller Frühe ging für uns die TechEd los. Alex und ich standen direkt schon um 8 Uhr am Messegelände um uns zu registrieren.

Der erste Teil des Tages stand dann fest im Zeichen der Labs, die man in einem riesigen Rechnerpool durchführen konnte. Wir haben dann einige davon durchgearbeitet, z.B. Protecting Exchange Server 2007 and 2010 with DPM 2010 oder Implementing Direct Access. Alex hat z.B. noch eine Stunde mit Deploying Windows Server 2008 R2 with MDT verbracht, während ich mir Advanced Powershell 2.0 angeschaut habe. Insgesamt hat es auf jeden Fall Spaß gemacht und man konnte einige interessante Dinge relativ schnell selbst implementieren und dadurch lernen. Umgesetzt wurde das ganze so wie es aussah mit Hyper-V und SCVMM Self Service Portal im Hintergrund, wobei natürlich alles schön automatisiert war. Sprich man konnte in einem Menü das Lab auswählen, das man starten wollte, dann wurden sofort alle virtuellen Maschinen bereitgestellt, die man dazu benötigt hat. Sehr schick! Nur während der größten Stoßzeiten kam die Hardware aufgrund des riesigen Andrangs etwas ins Schwitzen. Gegen später haben wir auch noch ein paar Labs zur Entwicklung für Windows Phone 7 bearbeitet.

Arbeitsplätze für Hands-On Labs

Um 16 Uhr war es dann an der Zeit für die Keynote, die von Brad Anderson gehalten wurde. Er ist Vice President und für den Bereich Management & Security bei Microsoft zuständig. Dementsprechend stand die Keynote auch etwas unter diesem Fokus, wobei das zentrale Thema sicherlich Cloud Computing war. Momentan dreht sich fast alles bei Microsoft um die Cloud, so zumindest der Eindruck des heutigen Vortrags. Daher waren einige der zentralen Themen beziehungsweise Produkte, die angesprochen wurden Office 365, Windows Intune, Windows Azure oder Hyper-V Cloud. In diesem Zusammenhang wurde zum Beispiel einiges zum im 1. Quartal 2011 erscheinenden SP1 für Windows Server 2008 R2 erzählt und das Publikum durfte einen Blick auf SCVMM 2012 in einer CTP Version werfen.

Nach der 2-stündigen Keynote gab es noch einen geselligen Ausklang im Ausstellungsbereich, bei dem man sich in kleinen Gruppen unterhalten konnte. Damit ging der erste Tag zu Ende. Morgen starten dann die Vorträge zu den verschiedensten Fachthemen.

Veröffentlicht unter Allgemein | Verschlagwortet mit | Hinterlasse einen Kommentar

ESCde @ TechEd Europe 2010 Berlin

TechEd Europe 2010 Header

Liebe Leser,

ab dem morgigen Montag, 8.11.2010 findet auf dem Berliner Messegelände die Microsoft TechEd Europe 2010 statt. Dieses Jahr werden sich die Vorträge im IT-Pro Bereich auf Themen wie Windows Phone 7, Virtualisierung, Cloud Computing, IT-Management und viele weitere produktunabhängige Fragestellungen konzentrieren.

Auch das ESCde wird in Person von Alexander Wachtel, zuständig für die Qualitätssicherung, und mir (Matthias Reichle, Teamleitung ESCde) an der Konferenz teilnehmen. Wir erhoffen uns natürlich viel über neue Produkte und deren Einsatzmöglichkeiten zu erfahren, sowie auf eine möglichst große Zahl neuer und bekannter Gesichter aus dem Microsoft-Umfeld wie auch aus unserem Kundenkreis zu treffen. Sollte also sonst noch jemand in Berlin sein, freuen wir uns über jeden Kontakt, der über die Kommentarfunktion mit uns aufgenommen wird. Wer uns direkt auf der Messe über den Weg läuft und uns erkennt, ist natürlich auch willkommen.

Nach etwa sechsstündiger Bahnfahrt von Karlsruhe in die Hauptstadt werden wir uns jetzt erst mal akklimatisieren und sind gespannt auf den Start morgen früh ab 8 Uhr. Der erste Tag wird voraussichtlich geprägt sein von Workshops, mit den technisches Vorträgen geht es ab Dienstag richtig los.
In den kommenden Tagen werden wir hier immer einen kleinen Überblick über die Highlights des Tages liefern.

Veröffentlicht unter Allgemein | Verschlagwortet mit | Hinterlasse einen Kommentar

Schwächen von wbadmin mit dem Taskscheduler ausbügeln

Eine der Grundregeln eines Admins lautet: “Wenn Sie Daten haben, machen Sie ein Backup davon!”.
Wer als Admin einen Server 2008 / 2008R2 verwaltet, der ist bestimmt schon über die eine oder andere Tücke des Windows Server Backup oder das zugehörige Kommandozeilen-Interface wbadmin gestolpert.

Uns Admins im ESCde ist folgende Einschränkung von wbadmin zu einem Problem geworden:

Um eine einfache Wartbarkeit zu garantieren, werden ausnahmslos alle Backups auf einen DFS-Pfad geschrieben, in diesem Beispiel \\DFS\Backup\. Zeigt dieser DFS-Pfad nun auf ein lokales Volume, z.B. D:\Backup\, so schlägt das Backup mit der Fehlermeldung “The requested operation could not be completed due a file system limitation.” fehl. Eine kurze Recherche führt zu einen Eintrag in den social.technet-Foren, dort ist die Aussage eines Microsoft-Mitarbeiters zu finden, dass es sich um ein bekanntes Problem handelt. Bei einem Backup auf ein lokales Volume besteht nicht die Möglichkeit, einen Pfad zu definieren, es wird immer in Laufwerksbuchstabe:\WindowsImageBackup geschrieben. Da momentan noch kein Hotfix für dieses Problem verfügbar ist und ein Änderung des Backup-Ziels für uns nicht in Frage kam, haben wir uns folgenden Workaround mit Windows-Bordmitteln erarbeitet:

Nach einem erfolgreichen Backup auf D:\WindowsImageBackup wird ein Event ins Backup-Eventlog geschrieben. Hier bietet sich die in Teil 1 dieser Serie erwähnte Eventtrigger an, um direkt nach einem erfolgten Backup eine Kopieroperation in das  Zielverzeichnis D:\Backup\WindowsImageBackup durchzuführen.

Erstellen wir also zunächst einen neuen Task im Taskscheduler. Als Account bietet sich in diesem Fall SYSTEM an, da der Task sowohl Lese, als auch Schreibberechtigungen auf den lokalen Volumes benötigt. Alternativ könnte man auch einen lokalen Benutzer erstellen, welcher nur auf dem Volume D:\ Lese- und Schreibberechtigungen besitzt:

Unter Triggers geben wir das Event mit der EventID 14 im Microsoft-Windows-Backup/Operational an:

Zum eigentlichen Kopieren verwenden wir das Tool robocopy mit den Parametern D:\WindowsImageBackup G:\Backup\WindowsImageBackup /s /move /b /copyall /log:D:\robocopy.txt /np. Zur Bedeutung der einzelnen Parameter:

  • /s werden alle Unterordner mit verschoben
  • /move löscht nach erfolgtem Kopiervorgang die Quelldateien
  • /b führt die Operation im Backup-Modus aus
  • /copyall kopiert alle Access Control Lists (ACLs) mit
  • /log definiert den Pfad zum Logfile
  • /np schreibt keine Fortschritts-Angaben in das Logfile, dadurch ist das Logfile wesentlich besser lesbar

Weitere Informationen zu den Robocopy-Befehlen finden sie in der entsprechenden Technet Befehlsreferenz. Mit diesem Task ist nun die eigentliche Aufgabenstellung erledigt, spätestens nach einiger Zeit wird jedoch auffallen, dass alte Backups nicht mehr automatisch von wbadmin gelöscht werden können, da diese ja immer sofort wegkopiert werden. Hierfür benötigen wir nun eine weitere Action, welche direkt nach dem Kopieren den Zielordner von alten Backups bereinigt. Hierfür verwenden wir das Tool forfiles mit den Parametern /P D:\Backup\WindowsImageBackup\Servername /d -1 /m backup* /c “cmd /c rmdir @PATH /q /s”. Zur Bedeutung der einzelnen Parameter:

  • /p gibt dem Pfad an, in dem forfiles nach alten Dateien suchen soll
  • /d -1 wählt alle Dateien älter als einen Tag aus
  • /m wählt alle Dateien aus, die mit “Backup” beginnen
  • /c führt den Befehl rmdir Pfad /q /s aus. Damit werden alle Dateien und Verzeichnisse, die den o.g. Bedingungen entsprechen ohne Nachfrage gelöscht

Weitere Informationen zu den forfiles-Befehlen finden sie in der entsprechenden Technet Befehlsreferenz

Zu beachten ist, wie bereits im ersten Teil dieser Serie erwähnt, dass die Reihenfolge der Aktionen der Reihenfolge entspricht, in der diese ausgeführt werden. In unserem Fall bietet es sich also an, diese wie folgt anzuordnen:

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

Automatisierter Shutdown mit Windows Bordmitteln

Wie bereits im ersten Teil dieses Blogs, Der Taskscheduler in Windows 7 bzw Server 2008R2, angekündigt, möchte ich Ihnen nun anhand einiger Beispiele den Taskscheduler näher bringen. Ich möchte mit einem Szenario beginnen, welches wohl in jedem Poolraum zu finden ist: Das automatische Herunterfahren mehrerer Rechner.

In unserem täglichen Support haben wir die Erfahrung gemacht, das hierfür oft Drittanbietertools verwendet werden, welche häufig zu Problemen führen können. Insbesondere bei Upgrades der Betriebssysteme ist die Kompatibilität solcher Produkte keineswegs immer gewährleistet.

Grundsätzlich bieten sich für diese Aufgabe zwei Lösungsansätze an:

  1. Auf einem Server wird über den Taskscheduler ein Skript ausgeführt, welches den Befehl shutdown /m \\computername ausführt
  2. Über GPO Preferences wird der Task auf die gewünschten Rechner verteilt und dort lokal ausgeführt

Der erstgenannte Ansatz ist zwar auf den ersten Blick leichter zu warten, bedingt aber, dass ständig eine Netzwerkverbindung zum Server besteht. Aus diesem Grund haben wir Admins vom ESCde uns für die zweite Lösung entschieden.

Zunächst benötigen wir einen Service Account, in dessen Kontext der Task ausgeführt werden soll. Generell gilt, dass die Berechtigungen, welche ein solcher Account erhält aus Sicherheitsgründen möglichst eng gefasst werden sollten. Es bietet sich aus Organisationsgründen an, eine eigene OU für Service Accounts zu erstellen. In dieser OU erstellen wir nun einen neuen Benutzer:

Nun erstellen wir eine neue Gruppenrichtlinie, zum Verteilen des Scheduled Tasks verwenden wir wie bereits erwähnt die Group Policy Preferences. Hierfür navigieren wir zu “Computer Configuration -> Preferences -> Control Panel Settings -> Scheduled Tasks”. In diesem Feld erstellen Sie über “Rechtsklick -> New -> Scheduled Task” einen neues Task. “Scheduled Task (Windows Vista and later)” erstellt einen Task, welcher nur unter Windows Vista / Server 2008 und neuer lauffähig ist, für detailliertere Informationen zu den Konfigurationsmöglichkeiten möchte ich auf den ersten Teil dieser Artikelserie “Der Taskscheduler in Windows 7 bzw Server 2008R2″ verweisen. Für unsere Zwecke genügt jedoch ein einfacher “Scheduled Task”, dieser ist auch unter Betriebssystemen die älter sind als Windows Vista / Server 2008 lauffähig.

Der Task führt in diesem Beispiel den Befehl shutdown /s /f /t 600 /c “Dieser Computer fährt in 10 min herunter” aus. Der Parameter /s definiert, dass es sich um einen Shutdown und nicht um einen Neustart (/r) oder einen Logoff (/l) handelt. Der Parameter /f erzwingt den Shutdown, eventuell noch geöffnete Programme werden geschlossen. Mit /t 600 wird die Zeit bis zum Herunterfahren in Sekunden angegeben, in unserem Fall 600s = 10 min. Mit /c “Nachricht” können Sie eine Meldung an den Benutzer senden, so dass dieser Zeit bekommt, seine Daten abzuspeichern. Unter “Run as” geben wir den zuvor erstellten Service Account und die entsprechenden Credentials ein.

Im Tab “Schedule” können Sie den Zeitpunkt nach ihren Wünschen einstellen.

Nun müssen wir noch dem Service-Account das Recht geben, die Computer herunterzufahren. Hierzu verwenden wir das “User Rights Assignment”. Sie finden dies unter “Computer Configuration -> Policies -> Security Settings -> Local Policies -> User Rights Assignment”. In dieser Rubrik müssen wir die Richtlinie “Shut down the system” und “Log on as a batch job” definieren. Wenn diese Richtlinien definiert werden, so werden die default Einstellungen überschrieben. Deswegen muss man darauf achten, die default-Einstellungen, welche imTab “Explain” aufgeführt sind, zusätzlich zum Service-Account hinzufügen:

Nun müssen wir die Gruppenrichtlinie noch auf die entsprechende OU verlinken. Nach einen Reboot, bei welchem die Computer-Gruppenrichtlinen angewandt werden, wird der Shutdown Task verteilt und die Rechner sollten zum gewünschten Zeitpunkt automatisch herunterfahren.

Weiterführende Links:

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

Der Taskscheduler in Windows 7 bzw Server 2008R2

Dieser Artikel gilt für: Windows 7, Windows 2008 R2

Heute möchte ich Ihnen den Taskscheduler in Windows 7 / Server 2008R2 vorstellen. Nun, Sie werden sich fragen: „Was ist an einem Scheduler schon besonders erwähnenswert, er führt eben zu einem bestimmen Zeitpunkt eine bestimmte Aktion aus.“

Doch das ist nur eine der vielen Möglichkeiten, die der Windows Task Scheduler, in deutschen Systemen als Aufgabenplaner bekannt, beherrscht. Mit der Einführung von Windows Vista bzw Server 2008 hat Microsoft die Möglichkeiten dieses Tools erheblich aufgebohrt.

Ich möchte Ihnen zunächst in diesem ersten Teil einen Überblick über die Konfigurationsmöglichkeiten geben um dann im zweiten Teil zu einigen Aufgabenstellungen des Admin-Alltags zu kommen, welche wir Admins im ESCde mit Hilfe des Task-Schedulers realisiert haben.

Starten wir zunächst einmal den Task Scheduler. Sie erreichen ihn am schnellsten über die Windows-Taste und die Eingabe von task bzw Aufgabe.

Beginnen wollen wir mit der Erstellung eines Task, dies erreichen wir durch einen Klick in die rechte Menüleiste auf Create Task.

An dieser Stelle können Sie sehen, dass Sie sich keineswegs auf dem Computer befinden müssen, auf welchem Sie den Task erstellen möchten, denn über einen Klick auf Connect to another Computer ist diese MMC wie die allermeisten MMCs komplett remotefähig. Dies setzt natürlich die entsprechenden Berechtigungen voraus, Sie müssen den Task Scheduler dann über Rechsklick -> Run as Administrator starten.

Wenn Sie Create Basic Task auswählen, startet ein kleiner Wizard, welcher Sie in wenigen Schritten durch die Erstelung des Task führt. In meinen Augen eine etwas überflüssige Einstellung, denn gerade die praktischen Einstellungen sind so nicht direkt zugänglich.

Nach einem Klick auf Create Task… sollten Sie nun folgendes Fenster sehen:

Das Feld Name ist denke ich selbsterklärend, hier hinterlegen Sie den Anzeigenamen des Tasks. Sehr hilfreich finde ich hier gerade in größeren Umgebungen mit vielen Administratoren das Description Feld. Hier können Sie detaillierte Notizen zum Task hinterlegen, in meinen Augen ideal zur einfachen Dokumentation.

Im Abschnitt Security Options müssen Sie angeben, unter wessen User-Account der Task laufen soll, per default ist hier der Benutzer in dessen Kontext der Task Scheduler ausgeführt wird eingetragen. Allgemein ist zu sagen, dass sich hier in den meisten Fällen ein spezieller Service-Account anbietet, welcher aus Sicherheitsgründen mit minimalen Berechtigungen augestattet sein sollte. Vor allem SYSTEM sollte mit Vorsicht genossen werden, da dieser Account höchste lokale Berechtigungen besitzt. Sollten Sie einen Service Account für diese Zwecke erstellen, benötigt dieser das Privileg Log on as batch job.

Das Häkchen Run with highest Privileges lässt sich am besten mit dem Bestätigen der User Account Control (UAC) vergleichen. Wenn ein Task höhere Berechtigungen benötigt als ein Standard-User besitzt, so muss dieser Haken gesetzt werden.

Im Tab Triggers können Sie einen oder mehrere „Auslöser“ für einen Task definieren. Wenn Sie mehrere Trigger definieren, so wird die unter Actions defnierte Aktion ausgeführt, wenn eine der Trigger-Bedingungen eintritt.

Nach einen Klick auf New erscheint folgendes Fenster:

Die Trigger-Bedingung On a Schedule bedarf wohl keiner weiteren Erläuterung, sie entspricht dem eines klassichen Schedulers. Die Bedingungen On Startup und On Logon etc. sind in einer AD-Umgebung von untergeordneter Bedeutung, da Sie über Gruppenrichtlinien zentral Startup/Shutdown bzw Logon/Logoff Skripts weitaus einfacher warten und verteilen können.

Die Bedingung On Idle ist recht selbsterklärend, die Bedingungen, was genau als Idle zu verstehen ist, können Sie im Tab Conditions definieren.

Etwas näher möchte ich hier auf die On an event Bedingung, auch „Eventtrigger“ genannt, eingehen. Hier können Sie eine bestimmte Aktion nach Auftreten eines bestimmten Events in einem bestimmten Log ausführen lassen. Ich denke hier wird deutlich, wie mächtig der Task-Scheduler eigentlich ist.

Ein denkbares Szenario wäre hier z.B. eine Anwendung oder ein Dienst, der sporadisch „hängen bleibt“ und dann teilweise erst nach Beschwerden von Benutzern durch manuelles Neustarten wieder in Funktion gebracht werden kann. Dies ist ein Szenario, welches Sie sonst nur mit weitaus mächtigeren Überwachungsprogrammen wie z.B. dem „System Center Operations Manager (SCOM) 2007 R2“ realisieren können.
Auch zur Diagnose von sehr selten auftretenden Störungen, welche immer mit einem bestimmten Event beginnen, kann diese Einstellung sehr hilfreich sein. Hierbei sind dann denkbare Aktionen z.B. das automatische Starten einen Netzwerktraces mit nmcap.exe (Komandozeilenvariante vom Network Monitor).

Auf dieser Seite möchte ich Ihren Fokus noch auf das Häkchen Stop task if it runs longer than: lenken. Diese Einstellung sollte wenn möglich immer verwendet werden, um eine unnötige Belastung des Rechners durch einen „hängenden“ Task zu vermeiden.

Auf den Tab Actions möchte ich nur kurz eingehen, da es hierzu relativ wenig zu sagen gibt. Wenn Sie hier mehrere Aktionen definieren, so werden diese in der angezeigten Reihenfolge von oben nach unten ausgeführt. Eine Aktion ist erst dann beendet, wenn der Prozess der gestarteten Aktion auch beendet wird.
Über die Aktion Send Email kann man sich einfach z.B. über auftretende Fehlerevents benachrichtigen lassen und sich z.B. sogar gleich ein Logfile als Attachment mitschicken lassen.

Als letzte Einstellung möchte ich noch das Häkchen Allow Task to be run on demand erwähnen. Wenn sich ein Task nicht manuell starten lässt, so ist meist diese Einstellung dafür verantwortlich, die beim Erstellen einen Task leicht übersehen werden kann.

In den nächsten Teilen möchte ich Ihnen anhand zweier Beispiele den Task-Scheduler und die oben erwähnten Optionen noch näherbringen.

Weiterführende Links:

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , | 4 Kommentare