Announcement

Collapse
No announcement yet.

Skript löscht alle alten Dateien im SEP Inbox-Ordner

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Skript löscht alle alten Dateien im SEP Inbox-Ordner

    Mit diesem Skript können Sie alle alten oder Err-Dateien aus dem Symantec Endpoint Protection Manager Inbox-Ordner löschen. Im Skript geben Sie lediglich den Pfad zum Inbox-Verzeichnis und das max. Alter der zu löschenden Dateien an. Die Ausführung können Sie über den Windows Task-Planer durchführen und eine Log-Datei wird auch ausgegen ("erase.log" im Inbox-Verzeichnis).

    Code:
    <# PowerShell-Script zur Bereinigung von temporären Dateien des SEPM -  
    Bereitgestellt durch: niwis consulting Gmbh -
    Ersteller: Lukas Franz Lenart -
    Kontakt: info@niwis.com -
    Stand: 08.09.2015 -
    Version: 1.0.1 #>
    
    <# Variablendeklaration
    $path = Ordnerpfad temporärer Dateien (bitte anpassen!) -
    $days = (Höchst-)Alter der Datei in Tagen -
    
    $err = String-Variable mit .err-Dateiendung -
    $dat = String-Variable mit .dat-Dateiendung -
    $tmp = String-Variable mit .tmp-Dateiendung -
    
    $amountERR = Anzahl .err-Dateien -
    $amountDAT = Anzahl .dat-Dateien -
    $amountTMP = Anzahl .tmp-Dateien #>
    
    $path = "";
    $days = 3;
    
    $err = "*.err";
    $tmp = "*.tmp";
    $dat = "*.dat";
    
    <# Befüllen der Zählervaribalen für die Statusausgabe im Log #>
    $amountERR = (gci -Path $path $err -Recurse |
                  Where-Object LastWriteTime -lt (Get-Date).AddDays($days) |
                  Measure-Object);
    $amountERR = $amountERR.count;
    
    $amountDAT = (gci -Path $path $dat -Recurse |
                  Where-Object LastWriteTime -lt (Get-Date).AddDays($days) |
                  Measure-Object);
    $amountDAT = $amountDAT.count;
    
    $amountTMP = (gci -Path $path $tmp -Recurse |
                  Where-Object LastWriteTime -lt (Get-Date).AddDays($days) |
                  Measure-Object);
    $amountTMP = $amountTMP.count;
    
    $amountALL = $amountERR + $amountDAT + $amountTMP;
    
    <# Erstellen eines Logfiles #>
    $log = $path + "\eraselog.log";
    Clear-Content -LiteralPath $log;
    
    <# Auflistung der gelöschten bzw. zu löschenden Dateien #>
    "Folgende Dateien werden gelöscht:" | Add-content $log;
    
    <# Durchlaufen der Verzeichnisse zur Ausgabe von Dateiname und letztem Änderungsdatum #>
    Foreach ($item in (dir -recurse $path))
    {
    If (!($item.PSIsContainer))        
    {  
    If ($item.LastWriteTime -lt (Get-Date).AddDays($days))
    {
    If ($item.Name -like $err -or $item.Name -like $tmp -or $item.Name -like $dat)
    {
    <# Befüllen der Logdatei mit Dateiinformationen #>      
    "Name: " + $item.FullName | Add-content $log
    "Letztes Änderungsdatum: " + $item.LastWriteTime | Add-content $log
    "" | Add-content $log
    }
    }
    }
    }
    
    <# Befüllen der Logdatei mit der Anzahl der gelöschten bzw. zu löschenden Dateien #>
    "Insgesamt gelöscht: " + $amountALL | Add-content $log;
    "Anzahl .err-Dateien: " + $amountERR | Add-content $log;
    "Anzahl .dat-Dateien: " + $amountDAT | Add-content $log;
    "Anzahl .tmp-Dateien: " + $amountTMP | Add-content $log;
    
    If ($amountALL -gt 0)
    {
    <# Löschen aller gefundenen und passenden .err-Dateien #>
    Get-ChildItem -Path $path -Recurse |
    Where-Object LastWriteTime -lt (Get-Date).AddDays($days) |
    Where name -like $err |
    Remove-Item;
    
    <# Löschen aller gefundenen und passenden .dat-Dateien #>
    Get-ChildItem -Path $path -Recurse |
    Where-Object LastWriteTime -lt (Get-Date).AddDays($days) |
    Where name -like $dat |
    Remove-Item;
    
    <# Löschen aller gefundenen und passenden .tmp-Dateien #>
    Get-ChildItem -Path $path -Recurse |
    Where-Object LastWriteTime -lt (Get-Date).AddDays($days) |
    Where name -like $tmp |
    Remove-Item;
    }
    
    Else
    {
    <# Informationsmechanismus, falls keine Dateien vorhanden sind #>
    "Es wurden keine Dateien gelöscht!" | Add-content $log;
    }
    Last edited by llenart; 08.09.2015, 13:49.
Working...
X