<# .SYNOPSIS Stellt Adobe Acrobat Custom Stamps aus einer Sicherung wieder her. .DESCRIPTION Lädt alle Stempel aus dem Ordner "StampsBackup" innerhalb des angegebenen Quellpfads zurueck in den lokalen Adobe Stamps-Ordner des Benutzers. Dabei werden alle Dateien ueberschrieben (Merge), Unterordner bleiben erhalten. .PARAMETER SourcePath Ordner, der die Sicherung enthaelt (der Ordner, der "StampsBackup" enthaelt). .EXAMPLE .\Adobe-Stamps-Restore.ps1 -SourcePath "D:\Sicherung\AdobeStamps" #> param ( [Parameter(Mandatory=$true)] [string]$SourcePath ) # Pruefen, ob der Sicherungspfad existiert if (-not (Test-Path $SourcePath)) { Write-Error "Der angegebene Wiederherstellungspfad '$SourcePath' existiert nicht." exit 1 } # Lokaler Pfad zum Adobe Stamps-Ordner $adobeStampsPath = Join-Path $env:APPDATA "Adobe\Acrobat\DC\Stamps" # Quell-Ordner mit den gesicherten Stempeln $backupFolder = Join-Path $SourcePath "StampsBackup" # Pruefen, ob die Sicherung vorhanden ist if (-not (Test-Path $backupFolder)) { Write-Error "Der Sicherungsordner '$backupFolder' wurde nicht gefunden. Ist dies ein gueltiger Sicherungsordner?" exit 1 } try { # Zielordner sicherstellen (falls Chrome/Adobe neu installiert wurde) if (-not (Test-Path $adobeStampsPath)) { New-Item -Path $adobeStampsPath -ItemType Directory -Force | Out-Null Write-Host "Der Adobe Stamps-Ordner '$adobeStampsPath' wurde erstellt." } # 1. Adobe Prozesse beenden, falls geöffnet (zwingend erforderlich, damit Dateien überschrieben werden können) $adobeProcesses = Get-Process -Name "AcroRd32","Acrobat","AcrobatDC" -ErrorAction SilentlyContinue if (-not $adobeProcesses) { # Fallback: alle Prozesse mit "Acrobat" oder "AcroRd" im Namen suchen $adobeProcesses = Get-Process | Where-Object { $_.ProcessName -match "Acrobat|AcroRd" } } if ($adobeProcesses) { Write-Host "Adobe Acrobat/Reader ist geöffnet. Schließe Adobe, um Datenkorruption zu vermeiden..." $adobeProcesses | Stop-Process -Force Start-Sleep -Seconds 2 # Kurze Pause für sauberen Abschluss } # 2. Dateien und Ordner aus der Sicherung zurueckkopieren $stamps = Get-ChildItem -Path $backupFolder -Force foreach ($item in $stamps) { $targetPath = Join-Path $adobeStampsPath $item.Name if ($item.PSIsContainer) { # Es ist ein Ordner (z.B. Dynamic) -> rekursiv kopieren/erstellen if (Test-Path $targetPath) { Copy-Item -Path $item.FullName -Destination $adobeStampsPath -Force -Recurse -ErrorAction Stop } else { Copy-Item -Path $item.FullName -Destination $adobeStampsPath -Force -Recurse -ErrorAction Stop } Write-Host " Ordner '$($item.Name)' wiederhergestellt." } else { # Es ist eine Datei (Stamp PDF) Copy-Item -Path $item.FullName -Destination $targetPath -Force -ErrorAction Stop Write-Host " Datei '$($item.Name)' wiederhergestellt." } } $restoredCount = ($stamps | Measure-Object).Count Write-Host "Erfolgreich alle Adobe Stempel aus '$backupFolder' nach '$adobeStampsPath' wiederhergestellt." Write-Host "Wiederhergestellte Elemente: $restoredCount" Write-Host "Du kannst Adobe Acrobat jetzt wieder starten." # Hinweis: Adobe Stempel werden beim nächsten Start neu geladen Write-Host "" Write-Host "Hinweis: Die Stempel werden beim nächsten Start von Adobe Acrobat automatisch neu geladen." } catch { Write-Error "Fehler bei der Wiederherstellung der Adobe Stempel: $_" exit 1 }