notfall_backup_doc02.ps1

Neu erstellt.
This commit is contained in:
Alin 2025-04-24 07:16:10 +00:00
parent 9a25375237
commit da477dc1f9

View File

@ -0,0 +1,59 @@
# 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"