Kategorieauswahl

Windows Server 2008

Windows Server 2008 oder auch W2k8

XML-Abfrage Ereignisanzeige

Die Filter für die Windows Ereignisanzeige (Eventlog) sind sehr mächtig geworden. Mit den standard Optionen in der grafischen Oberfläche kann man schon viel machen, aber leider nicht im Nachrichtentext filtern. Das geht auch mit XML Abfragen. Klicken Sie dazu zunächst einmal auf ein ähnliches Ereignis und klicken Sie dort die Detailansicht an. Dort wählen Sie XML View:

Dann erstellen Sie einen benutzerdefinierten Filter und wählen dort den Reiter XML. Setzen Sie das Häkchen bei Abfrage manuell bearbeiten. Wenn Sie bereits bei Filter Reiter Einstellungen gemacht haben, sind diese auch schon im XML hier vordefiniert. Haben Sie z.B. das Anwendungslog ausgewählt steht dort:
<QueryList>
<Query Id=“0″ Path=“Application“>
<Select Path=“Application“>*</Select>
</Query>
</QueryList>
Oben habe ich Sie den XML-View auswählen lassen. Warum? Dort sehen Sie, wie die jeweiligen Felder nach denen Sie suchen können benannt sind. Um nun also z.B. nach dem Benutzernamen zu suchen ergänzen Sie die XML Zeilen wie folgt:
<QueryList>
Id=“0″ Path=“Security“>
<Select Path=“Security“>*</Select>
*[EventData[Data[@Name=‘TargetUserName‚] and (Data=‘s‚)]]
</Select>
</Query>
</QueryList>

Selbstverständlich dürfen Sie das gerne weiter verkomplizieren:
*[EventData[Data[@Name=’SubjectUserName‘] and (Data=’abc‘ or Data=’123’)]]
Dies würde alle mit der Angabe abc oder 123 finden bei UserName finden.

Möchten Sie in mehreren Logs suchen:
<Select Path=“Security“>*[System[(EventID=’1234′)]]</Select>
<Select Path=“Application“>*[System[(EventID=’4321′)]]</Select>
Würde alle Ereignisse aus dem Eventlog Security mit der ID 1234 und alle Ereignisse aus dem Applicationlog mit der ID 4321 anzeigen.

Um die Filter in der PowerShell zu nutzen können Sie die XML-Abfrage genauso in einen String schreiben und mit Get-WinEvent abfragen:
$Query=@“
<QueryList>
Id=“0″ Path=“Security“>
<Select Path=“Security“>
*[EventData[Data[@Name=’TargetUserName‘] and (Data=’s‘)]]
</Select>
</Query>
</QueryList>
„@
$Evts=Get-WinEvent -log Security -FilterXPath $Query -maxevents 1000

Powershellscripte zur Verwaltung von Hyper-V

Wenn Sie kein SCVMM (System Center Virtual Machine Manager) Ihr eigen nennen wäre es doch trotzdem ganz nett einige Dinge davon selbst über Powershell zu machen. Microsoft hat eine Powershell Script Sammlung zur Hyper-V Verwaltung bereit gestellt. Damit können Sie u. a. virtuelle Maschinen und Snapshots bzw. Checkpoints erstellen und verwalten aber auch vhd’s konvertieren und noch vieles mehr. Die Sammlung wir stetig erweitert. Mit der Anleitung Powershell GUI-Programmierung für Dummies auf dieser Seite könnten Sie sich Ihren eigenen SCVMM zusammen bauen. Wenn ich einmal viel Langeweile habe mache ich das vielleicht für Sie ;-).

Identity Management bei IIS 7.5 unter Windows Server 2008 auf einen Blick

Bei IIS 7.5 unter Windows Server 2008 R2 und auch bei IIS 7 ist es gar nicht so leicht zu durchblicken wann welcher Benutzer zur Authentifizierung und Autorisierung zum Einsatz kommt. Daher habe ich einmal ein Schaubild gezeichnet auf dem die Zusammenhänge der verschiedenen Einstellungen deutlich werden (wenn das Bild fehlt bitte auf die Artikel-Überschrift klicken):

Weitere Informationen zur Application Pool Identity bei IIS 7.5 finden Sie hier. Wie man den Zugriff auf UNC-Freigaben weiterleitet wird hier erklärt.

Soll ich bei IIS 7.x den Usermode-, oder den Kernelmodecache aktivieren, oder beide?

Die Antwort lautet wie üblich: Es kommt ganz darauf an! 😉

Fakten: Kernelmodecache ist schneller als Usermodecache, da ein Übergang in den Usermode immer viel Zeit kostet! Wenn ein Webserver im Normalfall ca. 550/s Anfragen schafft, so werden daraus bei aktiviertem Usermodecache ca. 650/s, bei Kernelcache 950/s. Aktiviert man bei geht er knapp über 1000/s. Allerdings hat man dafür nicht immer genug Speicherreserven.

Des Weiteren ist es davon abhängig wie IIS mit der jeweiligen Website arbeitet. Wird von der Webanwendung mehr im Usermode gearbeitet, ist es sinnvoller den Usermodecache zu aktivieren, arbeitet Sie mehr im Kernelmode, natürlich lieber den Kernelcache. Dazu muss man allerdings wissen, wie die jeweilige Webanwendung tickt. Das verrät der folgende Powershell-Befehl:

Get-WmiObject win32_process | ? {$_.caption -eq "w3wp.exe"} | select commandline,usermodetime,kernelmodetime | fl

Ausgabe sind alle Workerprozesse vom IIS. Dabei wird als erstes angezeigt, welcher Applicationpool sich hinter dem Workerprocess versteckt und danach folgen die Zeiten die er sich im User und im Kernelmode aufhält. Anhand dieser Zahlen kann man sehr schön festlegen, welche Cacheart die sinnvollere für den jeweiligen Applicationpool und den damit verknüpften Websites ist. Zugegeben ,man hätte das ganze noch viel eleganter Lösen können am besten gleich mit der automatischen Cachekonfiguration. Aber das war eben mal so auf die Schnelle Quick & Dirty eben ;-).

IIS 7.5 Webserverkennung ändern

Im Internet gibt es unzählige Beiträge wie man den HTTP-Responseheader beim IIS verändert, oder abschaltet. Diese Tipps funktionieren aber nur bei ältern IIS Webservern. Die Beispiele die ich für IIS 7.5 unter Windows Server 2008 R2 gefunden habe sind entweder wirkungslos oder produzieren nur Fehler. Hier die Lösung!

Installieren Sie, falls noch nicht vorhanden, den Rollendienst ASP.NET mit dem Servermanager. Legen Sie in Ihrem Webverzeichnis einen Ordner namens App_Code an ( keine Verhandlungen – das Verzeichnis muss so heißen!). In diesem Verzeichnis erstellen Sie eine Datei Namens Martins.ServerModules.RemoveServerHeaderModule.cs. In die Datei schreiben Sie mit Notepad folgenden Text:

using System;
using System.Text;
using System.Web; 
namespace Martins.ServerModules 
 { 
  public class RemoveServerHeaderModule : IHttpModule 
  { 
   public void Init(HttpApplication context) 
   { 
     context.PreSendRequestHeaders += OnPreSendRequestHeaders; 
   } 
   public void Dispose() 
   { } 
   private void OnPreSendRequestHeaders(object sender, EventArgs e)
   {
    HttpContext.Current.Response.Headers.Set("Server", "Apache");
   }
  }
 }

Dann fügen Sie in der IIS-Verwaltungskonsole für die Website in der Sie vorhin den Ordner App_Code erstellt haben ein verwaltetes Modul hinzu. Unter Name schreiben Sie etwas was Sie wiedererkennen also z. B. MartinsModul und unter Typ schreiben Sie den Dateinamen ohne die Dateinamenerweiterung, also: Martins.ServerModules.RemoveServerHeaderModule. Dämliche Rückfragen mit Ja beantworten und schon ist Ihr IIS angeblich ein Apache. Das was er da anmotzt behebt er automatisch.

Mit einem Netzwerksniffer sehen Sie nun in der Rückantwort vom Server statt:

Server: Microsoft-IIS/7.0\r\n

Server: Apache\r\n

Den Eintrag: X-Powered-By: ASP.NET\r\n werden Sie ganz einfach über HTTP-Antwortheader in der IIS-Verwaltungskonsole los. Das kann ja jeder ;-), aber etwas löschen was nicht da steht ist gar nicht so einfach!

 

Einfache Powershell-Befehle für den Active Directory Papierkorb und eine GUI

Hier ein kleines Powershellscript, dass die Powershell um einfache Befehle für die Verwaltung und Einrichtung des Active Directory Papierkorbs erweitert (sollte der Downloadlink nicht angezeigt werden, klicken Sie bitte auf die Überschrift des Artikels):

AD-Papierkorb-Cmdlets

Um den AD-Papierkorb zu aktivieren muss das Script als Organisationsadministrator ausgeführt werden, da nur dieser berechtigt ist im gesamten Forest den Papierkorb zu aktivieren. Dieses Feature kann nicht auf Domänenebene aktiviert werden. Der Forestlevel muss auf 2008 R2 hochgestuft sein. Falls Sie befürchten, dass irgendwelche schädlichen Aktionen im Script versteckt sind, schauen Sie einfach hinein, oder lassen Sie es von jemand überprüfen der sich damit auskennt.

Wurde der Papierkorb bereits aktiviert, kann das Script zukünftig auch als Domänenadministrator aufgerufen werden.

Das Script selbst schafft zunächst nur die Voraussetzungen für die Befehle, damit diese auf der aktuellen Maschine in der aktuellen Domäne ausgeführt werden können und baut die Befehle als Funktion in Ihre aktuell laufende Powershell ein. Wenn Sie die aktuelle Powershell Konsole schließen sind die Befehle auch schon wieder vergessen. Sie müssen also jedes mal das Script starten, bevor Sie auf die Befehle zugreifen können. Selbstverständlich dürfen Sie das Script auch verändern, damit es zukünftig zu Ihrem Standardbefehlssatz gehört.

Der Papierkorb kann nur Objekte wiederherstellen, die nach seiner Aktivierung gelöscht wurden. Die Befehle können alle Objekte wieder herstellen, also nicht nur Benutzer ,Gruppen OUs und Computer.

Hier nun die 3 einfachen Befehle zur Verwaltung des Papierkorbs die sich automatisch an die Domäne in der Sie sich angemeldet haben anpassen:

Start-RecycleBin

Achtung! Ist der Papierkorb aktiviert, kann diese Funktionalität (generell – auch über die Standardwerkzeuge) nicht mehr zurückgezogen werden.

Einfach nur eintippen und der Papierkorb wird aktiviert. Ggf. fragt das Script noch ein paar Dinge ab. Auf jeden Fall informiert der Befehl darüber ob der Papierkorb aktiviert ist.

Show-DeletedADObjects

Aufruf auch hier ohne weitere Parameter. Zeigt alle sich derzeit im Papierkorb befindlichen Objekte an.

Restore-DeletedADObjects Suchbegriff

Dieser Befehl holt gelöschte Objekte aus dem Papierkorb zurück. Geben Sie den Befehl gefolgt von einem Suchbegriff ein. Der Suchbegriff verarbeitet keine Platzhalterzeichen wie z.B. ein *. Dies wird automatisch im Script vor und nach dem Suchbegriff eingesetzt. Sollten Sie nicht wissen was Sie gelöscht haben, können Sie sich mit Show-DeletedADObjects einen Überblick über den Inhalt des Papierkorbs verschaffen.

Wenn Sie eine komplette OU gelyncht haben, können Sie einfach den Namen der OU angeben. Alle enthaltenen Objekte werden automatisch mit angezeigt.

Der Befehl stellt nicht einfach alles wieder her was dem Suchbegriff entspricht, sondern listet erst einmal alles was er zum Suchbegriff findet und fragt dann nach ob er die Objekte wiederherstellen soll. Dies beantworten Sie dann mit Ja oder Nein.

Grafische Oberfläche für den AD-Papierkorb mittels Powershellscript:

Wenn Sie zu den Mausschubsern gehören, können Sie auch das folgende Powershellscript nutzen um per GUI (grafischer Oberfläche) den AD-Papierkorb zu verwalten:

AD-Recyclebin-Tool

Vorteile des Scripts:

  • Multiple Domain tauglich
  • Löschzeitraum kann angegeben werden
  • Schneller als so manche kommerzielle .EXE Datei
  • Kann mit etwas Glück sogar Objekte restaurieren, die vor Aktivierung des Papierkorbs gelöscht wurden.

GUIADRecycleBin

 

 

 

Das ZIP-Archiv ist in einen Ordner Ihrer Wahl zu entpacken. Darin enthalten sind ein paar Icons und das Script selbst. Einfach nur das Script ohne Parameter starten.

Der Einsatz der Scripte für den AD Papierkorb ist auch für den gewerblichen Einsatz kostenfrei. Gegen eine Spende (siehe PowerShell-Buch) habe ich aber sicher nichts einzuwenden ;-). Eine Haftung bei evtl. auftretenden Schäden wird nicht übernommen. Verbesserungsvorschläge nehme ich gerne über Kommentare oder das Kontaktformular entgegen.

Linux Integration Components für Windows Server 2008 R2 und Windows Server 2012

Microsoft hat die neue Version 3.4 der Linux Integration Components für Windows Server 2008 und 2008 R2 veröffentlicht. Diese brauchen Linux-Gäste um unter Hyper-V performanter und korrekt abzulaufen. Neu ist u. a. die Unterstützung für RedHat.

In Version 3.4 neu ist die Unterstützung der neuen Microsoft Hyper-V-Hosts: Windows 8 und Windows Server 2012.

Zentrale Gruppenrichtlinienverwaltung ohne Active Directory

Gruppenrichtlinien sind ein mächtiges Werkzeug für die Verwaltung von Windowsstationen. Es soll aber tatsächlich einige Netzwerke geben, die entweder immer noch als Arbeitsgruppe eingerichtet sind oder mit einer Samba Domäne (Version < 4.0) arbeiten. Dort würde man vielleicht auch gerne Gruppenrichtlinien einmal erstellen und auf allen Stationen anwenden.

Dazu müssen Sie lediglich auf einer der Windowssysteme die lokale Gruppenrichtlinienverwaltung gemäß Ihren Wünschen mittels gpedit.msc wie gewünscht konfigurieren. Auf dieser Station werden die Einstellungen dann im C:\Windows\System32\GroupPolicy Verzeichnis hinterlegt. Vorsicht! Nicht das Verzeichnis GroupPolicyUsers! Das werden Sie aber zunächst als einziges sehen. Erst wenn Sie im Explorer die versteckten und Systemdateien anzeigen lassen wird das GrouPolicy Verzeichnis sichtbar. Der Rest ist denkbar einfach! Lassen Sie auf eine Art Ihrer Wahl dieses Verzeichnis auf die anderen Computer kopieren – ggf. noch ein Reboot und fertig. Das war’s auch schon!

Wenn Sie mögen können Sie die Verteilung über ein einfaches *.bat Script erledigen lassen, dass Sie entweder durch doppelklick starten oder der Aufgabenplanung für regelmäßige Aktualisierungen übergeben.

Deutsche Suchbegriffe für Windows 7 Indexdienst

Bei Windows Vista war es noch egal ob man Abfragebegriffe in Deutsch oder Englisch eingibt. Bei Windows 7 müssen Sie auf die jeweilige Sprachversion achten!

Die Suchsyntax in Englisch finden Sie hier erklärt. Da dies leider nicht auf Deutsch funktioniert (z.B. wenn Sie filename:*.exe eintippen findet er interessanter Weise nichts) hier ein paar wichtige deutsche Übersetzungen:

dateiname:*.txt größe:>2MB inhalt:Passage     Sucht nach allen Dateien im aktuellen Verzeichnis die größer als 2 MB sind und die Dateinamenerweiterung txt haben. Im Inhalt der Textdatei muss das Wort Passage vorkommen. Ob Sie größe oder grösse schreiben spielt dabei keine Rolle.

art:email suchbegriff     Sucht den Suchbegriff nur in E-Mails. Des Weiteren können Sie auch mit den Schlüsselworten an:, von: und betreff: Einschränkungen vornehmen.

art:email ordner:gesendete objekte     Sucht nur im Ordner gesendete Objekte. Genausogut funktionieren auch alle anderen wie z.B. posteingang usw. Mit Gelöschte Objekte hatte ich aber leider noch kein Glück. Wer es herausgefunden hat bzw. weiß bitte einen Kommentar ergänzen – vielen Dank.

 

GUI für ImageX

ImageX ist ein kommandozeilenbasiertes Werkzeug für die Verwaltung und Bearbeitung von WIM-Images. Wenn Sie keine Lust haben sich die ganzen Schalter zu merken können Sie sich kostenlos GImageX herunterladen. Dies bietet Ihnen eine mächtige grafische Oberfläche für die Benutzung von ImageX.