# Erstellt am 18.02.2025 - Alin Sennewald - IN-AP # Backup läuft in folgenden Monaten: Februar, April, Juni, August, Oktober, Dezember in den Ordner: Notfalldoku02 # Die Zeile 8 und 9 muss nur einmal auf den Rechner mit dem User der das Script ausführt werden. # Damit das Passwort mit der Maschine und dem User in das Verzeichnis Temp als Securestring abgelegt wird. # Danach Bitte die Zeile deactivieren. # $Passwort = Read-Host "Geben Sie das Passwort ein" -AsSecureString # $Passwort | ConvertFrom-SecureString | Out-File "C:\Temp\cred.txt" # Benutzername für das Share $Username = "10.253.206.200\controlm" # Ordnername $Ordnername = "Notfalldoku02" if (Get-PSDrive -Name $Ordnername -ErrorAction SilentlyContinue) { Remove-PSDrive -Name $Ordnername Write-Host "PSDrive $Ordnername entfernt." } # Gespeichertes Passwort laden und entschlüsseln SPEICHERORT ANPASSEN $EncryptedPassword = Get-Content "C:\Temp\cred.txt" | ConvertTo-SecureString $Credential = New-Object System.Management.Automation.PSCredential ($Username, $EncryptedPassword) New-PSDrive -Name $Ordnername -PSProvider FileSystem -Root "\\10.253.206.200\$Ordnername" -Credential $Credential # Liste der Quell- und Zielverzeichnisse für Notfalldoku01 fuer die MOnate 1 / 3 / 5 / 7 / 9 / 11 $BackupJobs = @( @{Quelle = "\\xw555.n-ad.n-ergie\Betrieb$\Betrieb"; Ziel = "\\10.253.206.200\$Ordnername\Betrieb"} @{Quelle = "\\xw555.n-ad.n-ergie\Betrieb$\Mitarbeiter"; Ziel = "\\10.53.206.200\$Ordnername\Mitarbeiter"} @{Quelle = "\\xw555.n-ad.n-ergie\Doku IT-ER"; Ziel = "\\10.253.206.200\$Ordnername\Doku IT-ER"} @{Quelle = "\\xw555.n-ad.n-ergie\Doku IT-IN"; Ziel = "\\10.253.206.200\$Ordnername\Doku IT-IN"} @{Quelle = "\\xw555.n-ad.n-ergie\Doku IT-PA"; Ziel = "\\10.253.206.200\$Ordnername\Doku IT-PA"} ) # Robocopy Parameter $RobocopyParams = "/R:1 /W:3 /E /PURGE /NP /XD" # Starte Backup-Prozess foreach ($Job in $BackupJobs) { $Quelle = $Job.Quelle $Ziel = $Job.Ziel # Robocopy ausführen $RobocopyCmd = "robocopy `"$Quelle`" `"$Ziel`" $RobocopyParams" $Result = Invoke-Expression -Command $RobocopyCmd # Erfolg oder Fehler prüfen if ($LASTEXITCODE -lt 8) { $Status = "Backup erfolgreich" } else { $Status = "Backup fehlgeschlagen (Fehlercode: $LASTEXITCODE)" } } # Nach dem Backup den PSDrive wieder entfernen Remove-PSDrive -Name "Notfalldoku02"