120405-Header-v2.jpg

Windows Server haben unter Umständen sehr viele Vertrauenswürdige Stammzertifizierungsstellen, von den ein großer Teil nicht benötigt wird, unter Umständen sogar Gefahren bergen. Hier zeigen wir, wie man das bereinigen kann.

Freigegeben in trevedi Blog

 

Die Protokolldateien jeder Web-Site des IIS sammeln sich bei aktivierter Protokollierung an. Wor haben auf einem Exchange Clientaccess Server schon mehr als 20 GB IIS-Logs gefunden.

Es gibt keine Möglichkeit, wie etwa bei Exchange Protokolldateien auf Transportservern, zu konfigurieren, dass alte Protokolldateien gelöscht werden.

Das folgende Skript erledigt die Ausgabe, wobei das Skript alle Web-Sites auf einem Server mit installiertem IIS ermittelt. und bearbeitet. Es kann über die Aufgabenplanung ausgeführt werden.

 

param (               
                [ValidateRange(30,3650)]
                [int]$MaxLogFileAge=100,
                [string[]]$servers=$env:Computername,
                [switch]$CleanUp=$false
)
function Cleanup-IISLogFolder {
param (
                [int]$MaxLogFileAge=100,
                [string]$server,
                [switch]$CleanUp
)
        $WMI = New-Object Management.ManagementScope("\\$Server\root\MicrosoftIISv2");
        $WMI.Options.Authentication = "PacketPrivacy";
        $Query = New-Object Management.ObjectQuery("SELECT  * FROM IIsWebServerSetting");
        $Searcher = New-Object Management.ManagementObjectSearcher($WMI, $Query);
        Trap [UnauthorizedAccessException] {
                Write-Error "$($Server): Unable to connect or Access is denied";
                return $False
                }
        $result = $Searcher.Get();
                foreach ($r in $result) {
                               $path = $r.logFiledirectory.replace(":\","$\")
                               $folder = "\\{0}\{1}\{2}" -f $server,$path,$r.name.replace("/","")
                               $age = (get-date).adddays($MaxLogFileAge*-1)
                               write-host "Cleanup $folder - LogFiles created days $age before."
                               if ($CleanUp -eq $true) {
                                               $X = get-childitem $folder | where {$_.creationtime -lt $Age} | remove-item -whatif
                               } else {
                                               get-childitem $folder | where {$_.creationtime -lt $Age}
                               }
                }
}
foreach ($server in $servers) {
               if ($cleanup) {
                       cleanup-IISLogFolder -maxLogFileAge $maxLogFileAge -server $server -cleanup $cleanUp
              } else {
                        cleanup-IISLogFolder -maxLogFileAge $maxLogFileAge -server $server
              }
}

Hinweis: Entfernen Sie für den Ernstfall das -whatif hinter remove-item (Auch im Skript, dass zum Download bereitsteht.)

Über den Parameter MaxLogFileAge (Angabe in Tagen) wird festgelegt, bis zu welchem Datum die Protokolldateien gelöscht werden (aktuelles Datum – MaxLogFileAge). Das Skript verhindert das Löschen von Dateien, die jünger als 30 Tage sind und älter als 10 Jahre – letztere gehören ins Museum! Mit Servers kann kommagetrennt eine Liste der Server oder nur ein Server angegeben werden. Wenn keine Server angegeben wird, wird der lokale Hosts bearbeitet. Wird Cleanup angegeben, wir gelöscht, sonst werden die Datei, die zu alt sind, nur aufgelistet Das kann zum Beispiel zur Ermittelung deren Gesamtgröße oder zur weiterverarbeitung über die Pipe, zum Beispiel zum Archivieren der Dateien vor den Löschen eingesetzt werden.

Aufruf zum Auflisten auf dem lokalen Server:

.\cleanup-IISLogFiles.ps1 –MaxLogFileAge 200

Aufruf zum Auflisten auf mehreren Servern:

.\cleanup-IISLogFiles.ps1 –MaxLogFileAge 200 –servers  server01,server02

Aufruf zum Löschen auf dem lokalen Server:

.\cleanup-IISLogFiles.ps1 –MaxLogFileAge 200 -cleanup

Aufruf zum Löschen auf mehreren Servern:

.\cleanup-IISLogFiles.ps1 –MaxLogFileAge 200 –servers  server01,server02 -cleanup

 

Download des Skripts

Skript cleanup-iislogFiles.ps1

 

Freigegeben in trevedi Blog

Wenn man das memberof Attribute eines Benutzerkonto im AD auswertet,um die Sicherheitsgruppen, zu denen das Konto gehört, festzustellen, ergeben sich folgende Probleme:

1. Indirekte Gruppenmitgliedschaften sind darin nicht enthalten.
2. Das memberof Attribute enthält auch Verteilerlisten.
3. Das memberof Attribute enthält die DistinguishedNames der Gruppen. Man muss die Gruppennamen ermitteln.
4. Die Standardgruppe des Benutzers ist nicht enthalten.

Freigegeben in trevedi Blog

Die Powershell bietet mit import-csv und export-csv zwei Commandlets, mit denen bequem spaltenweise aufgebaute Datei verarbeitet werden können. Es gibt kein Commandlet, das es ermöglicht, einer vorhandenen CSV-Datei Zeilen hinzu zu fügen (append-csv). Wir stellen dafür ein Skript alternativ dazu eine Funktion zur Verfügung.

Freigegeben in trevedi Blog

trevedi-logo-weiss

transparent10

trevedi IT-Consulting GmbH
Gottfried-Hagen-Str. 30
51105 Köln

T +49 (0)221 - 3 55 88 88 - 0
E Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

 

Impressum/Haftungsausschluss

transparent10

transparent10

© trevedi IT-Consulting GmbH 2012

Login

Login