From 9a25375237432bcac98a46dcc400a8241f40f451 Mon Sep 17 00:00:00 2001 From: Alin Date: Thu, 24 Apr 2025 07:13:19 +0000 Subject: [PATCH] notfall_backup_doc01.ps1 Neu erstellt. --- Backup/notfall_backup_doc01.ps1 | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Backup/notfall_backup_doc01.ps1 diff --git a/Backup/notfall_backup_doc01.ps1 b/Backup/notfall_backup_doc01.ps1 new file mode 100644 index 0000000..3db66bd --- /dev/null +++ b/Backup/notfall_backup_doc01.ps1 @@ -0,0 +1,59 @@ +# Erstellt am 18.02.2025 - Alin Sennewald - IN-AP +# Backup läuft in folgenden Monaten: Januar, März, Mai, Juli, September, November in den Ordner: Notfalldoku01 + +# 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 = "Notfalldoku01" + +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 "Notfalldoku01" \ No newline at end of file