# PowerShell 4.0 Script # Log Datei schreiben # Digital Data # Ludwig-Rinn-Strasse 16 # 35452 Heuchelheim # Tel.: 0641 / 202360 # E-Mail: info@didalog.de # Version 1.0 # Letzte Aktualisierung: 15.04.2014 # Mindestanforderung für dieses Skript: # Microsoft Windows 7 SP1 / Server 2008 R2 SP1 -> siehe KB976932 # Microsoft .NET Framework 4.5 -> siehe KB2858728 # Microsoft PowerShell 4.0 -> siehe KB2819745 # WICHTIG: Falls sich dieses Skript nicht ausführen lässt, # muss dieser PS-Befehl noch mit administrativen Rechten ausgeführt werden: # set-executionpolicy unrestricted # Definition der Variablen Set-Variable -name SkriptName -value $MyInvocation.MyCommand.Name -Description "Name dieser Datei, wird verwendet, für Erstellung von Logs." Set-Variable -name timestamp -value $(Get-Date -Format 'ddMMyyyy_hhmmss') -Description "Datum wird in einem gewissen Format aufbereitet und dann Log-Dateien anhangen." Set-Variable -name LogPath -value "e:\" -Description "Pfad für Log-Dateien." Set-Variable -name Logfile -value "$SkriptName`_$timestamp.log" -Description "Name für Log-Dateien." Set-Variable -name LogEntfernen -value $(Get-Date).AddDays(-1) -Description "Zahlenwert, wie lange Log-Dateien aufbewahrt werden sollen z.B. -30 = 30 Tage aufbewahren." # Definition der Funktionen Function LogWrite { Param ([string]$logstring) Add-content $LogPath\$Logfile -value $logstring Write-Host $logstring } Function CheckPath { Test-Path () } # Überprüfen ob Logpfad angelegt ist, wenn nicht vorhanden, wird er angelegt. # Eigentlicher Programmstart. Sub Main LogWrite "Programmstart am $(Get-Date -Format dd.MM.yyyy) um $(Get-Date -Format hh.mm.ss) auf $env:COMPUTERNAME." LogWrite "Die Ausführung erfolgt unter dem Konto: $env:USERDNSDOMAIN\$env:USERNAME." End Sub # Löschen alter Log-Dateien. get-childitem “$LogPath ” | where {$_.lastwritetime -lt $LogEntfernen -and -not $_.psiscontainer} |% {remove-item $_.fullname -force -verbose }