8
0
Skriptentwickung/test/WriteLog.ps1
2024-01-24 16:42:38 +01:00

61 lines
2.0 KiB
PowerShell

# 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 }