> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/de/getting-started/migration.md).

# Migrieren und Wiederherstellen

Häufig ist es wünschenswert, eine PowerShell Universal-Serverkonfiguration von einem Computer auf einen anderen zu migrieren. Dies kann auf eine Änderung der Infrastruktur oder eine Wiederherstellung aus einem Backup zurückzuführen sein. Dies kann für Betriebssystem-Upgrades oder allgemeine Rechenzentrumswartung erfolgen.

Dieses Dokument erläutert die notwendigen Schritte, um die PowerShell Universal-Konfiguration auf einen anderen Computer zu migrieren.

Wir empfehlen, den PowerShell Universal-Dienst zu stoppen, bevor Sie die Migration oder Wiederherstellung durchführen.

```powershell
Stop-Service 'PowerShellUniversal'
```

Je nach Art der Migration oder Wiederherstellung müssen Sie möglicherweise nicht alle diese Aktionen ausführen.

## Konfigurationsdaten

Die Konfigurationsdatendateien werden standardmäßig in `%ProgramData%\UniversalAutomation\Repository` gespeichert. Diese bestehen aus Funktionen wie APIs, Skripten und Apps. Das gesamte Verzeichnis ist erforderlich, damit die Konfiguration des Zielsystems funktioniert.

Sie können den Ordner entweder manuell oder über PowerShell kopieren. Stellen Sie sicher, dass Sie alle Unterverzeichnisse einbeziehen.

```powershell
Copy-Item $ENV:ProgramData\UniversalAutomation\Repository \\newServer\C$\ProgramData\UniversalAutomation\Repository -Recurse
```

## Datenbank

Die Datenbankmigration hängt von der Art der verwendeten Datenbank ab.

### SQLite

Sie müssen die SQLite-Datenbankdatei an den konfigurierten oder standardmäßigen Datenbankspeicherort kopieren. Bei einer Standardinstallation ist dies `%ProgramData%\UniversalAutomation\database.db`. Das Zielcomputerkonto oder Dienstkonto benötigt Lese- und Schreibzugriff auf diese Datenbankdatei.

```powershell
Copy-Item $ENV:ProgramData\UniversalAutomation\database.db \\newServer\C$\ProgramData\UniversalAutomation\database.db 
```

Wenn Sie aus einem Backup wiederherstellen, müssen Sie möglicherweise ein [Downgrade](/powershell-universal/de/getting-started/downgrade.md) des Schemas durchführen, falls Sie die Version aktualisiert haben.

### SQL und PostgreSQL

Da diese Datenbanken außerhalb des PowerShell Universal-Servers gespeichert werden, müssen Sie keine Migration der Datenbank selbst durchführen. Sie müssen sicherstellen, dass der Zielserver Netzwerkzugriff auf den SQL-Host hat.

Wenn Sie aus einem Backup wiederherstellen, müssen Sie möglicherweise ein [Downgrade](/powershell-universal/de/getting-started/downgrade.md) des Schemas durchführen, falls Sie die Version aktualisiert haben.

## Anwendungseinstellungen

Die PowerShell Universal-Datei `appsettings.json` ist erforderlich, um der Plattform die entsprechenden Servereinstellungen bereitzustellen. Standardmäßig wird diese in `%ProgramData%\PowerShellUniversal\appsettings.json` gespeichert. Sie müssen diese an denselben Ort auf dem neuen Server kopieren.

Diese Datei enthält Konfigurationseinstellungen wie HTTP-Zertifikat, Authentifizierung, Git-Sync-Einstellungen, API-Konfigurationsoptionen und mehr.

```powershell
Copy-Item $ENV:ProgramData\PowerShellUniversal\appsettings.json \\newServer\C$\ProgramData\PowerShellUniversal\appsettings.json 
```

appsettings.json-Dateien ändern sich zwischen Upgrades nicht und Sie müssen diese Aktion während einer Wiederherstellung wahrscheinlich nicht ausführen.

## Secret Vaults

PowerShell Universal enthält 3 integrierte Secret Vaults, die möglicherweise migriert werden müssen. Der Datenbank-Tresor ist in der Datenbankmigration enthalten und erfordert keine zusätzlichen Schritte. Wenn Sie eine Wiederherstellung durchführen, ist es unwahrscheinlich, dass Sie diese Wiederherstellungsvorgänge ausführen müssen, es sei denn, die Secret Vaults sind beschädigt worden.

### PSUSecretStore

Der Tresor `PSUSecretStore` verwendet Microsofts [SecretStore-Modul](https://learn.microsoft.com/en-us/powershell/utility-modules/secretmanagement/get-started/using-secretstore?view=ps-modules). Dieses Modul speichert Geheimnisse auf der Festplatte mittels symmetrischer Verschlüsselung. Ein Standard-Verschlüsselungsschlüssel ist in PowerShell Universal-Installationen enthalten. Wenn der Schlüssel aktualisiert wurde, befindet sich der neue Schlüssel in der appsettings.json-Datei, die Sie im vorherigen Schritt migriert haben. Sie müssen außerdem den physischen Secret Store in das Dateisystem des neuen Servers verschieben.

Das SecretStore-Modul verwendet einen benutzerspezifischen Speicherort, um sicherzustellen, dass ACLs auf den Dateien selbst durchgesetzt werden. Sie müssen sicherstellen, dass Sie den Inhalt des Tresors in das Konto des Benutzers kopieren, der PowerShell Universal auf dem neuen System ausführen wird.

```powershell
Copy-Item $Env:LOCALAPPDATA\Microsoft\PowerShell\secretmanagement\localstore \\newServer\C$\Users\myServiceAccount\AppData\Local\Microsoft\PowerShell\secretmanagement\localstore 
```

### BuiltInLocalVault

Der `BuiltInLocalVault` ist nur unter Windows verfügbar und verwendet den Credential Manager zum Speichern von Geheimnissen. Sie müssen diese Geheimnisse im Credential Manager-Speicher auf dem neuen System neu erstellen.

Im Credential Manager finden Sie PowerShell-Geheimnisse, die mit dem Präfix `ps:` gespeichert sind.

<figure><img src="/files/nU8vXmfXpDhwJ4f4MLQX" alt=""><figcaption></figcaption></figure>

Es ist zwar nicht möglich, Anmeldeinformationen direkt aus der Credential Manager-Benutzeroberfläche zu extrahieren, aber Sie können die Secret Management-Module direkt verwenden. Um Geheimnisse abzurufen, können Sie Folgendes tun.

```powershell
Install-Module Micorosoft.PowerShell.SecretManagement
Install-Module SecretManagement.JustinGrote.CredMan
Register-SecretVault -Name 'BuiltInLocalVault' -ModuleName SecretManagement.JustinGrote.CredMan
Get-SecretInfo -Vault BuiltInLocalVault
$Secret = Get-Secret -Name 'TestApiKey' -Vault 'BuiltInLocalVault' -AsPlainText
```

Auf dem neuen Server können Sie den umgekehrten Weg gehen und `Set-Secret` aufrufen. Beachten Sie, dass diese Befehle als das Dienstkonto ausgeführt werden müssen, unter dem PowerShell Universal läuft, damit sie ordnungsgemäß im Credential Manager-Konto des Benutzers gespeichert werden.

## Authentifizierung

Bestimmte Authentifizierungstypen erfordern eine Konfiguration außerhalb von PowerShell Universal. Sofern Sie nicht den Computer verschieben, auf dem PowerShell Universal läuft, oder die zugänglichen URLs ändern, müssen Sie diese Aktionen nicht ausführen.

### OpenID Connect

Stellen Sie sicher, dass die richtigen Anmelde-URLs in Ihrem Identitätsanbieter (z. B. Azure AD oder Okta) konfiguriert sind, wenn sich der Hostname des Servers ändert. Ohne ordnungsgemäß konfigurierte Anmelde-URLs können Benutzer sich nicht am neuen System anmelden.

### Windows

Die [Windows-Authentifizierung](/powershell-universal/de/sicherheit/enterprise-security/windows-sso.md) erfordert die Einrichtung eines SPN für das Dienstkonto, unter dem der PowerShell Universal-Dienst ausgeführt wird. Stellen Sie sicher, dass dieser SPN vorhanden ist, bevor Sie versuchen, die Windows-Authentifizierung mit dem neuen System zu verwenden.

## Sonstige Ressourcen und Überlegungen

Es kann weitere Ressourcen geben, die PowerShell Universal auf dem System verwendet und die bei der Migration oder Wiederherstellung von Servern berücksichtigt werden sollten. Normalerweise müssen Sie sich während einer Wiederherstellung nicht um diese Ressourcen kümmern, da sie gleich bleiben sollten, wenn sich der Computer nicht geändert hat.

* PowerShell-Module
* Umgebungsvariablen
* Berechtigungen für lokale Konten
* Dateisystemberechtigungen
* Proxy-Konfiguration
* Zertifikate
* Git-SSH-Schlüssel oder Anmeldeinformationen
* DNS-Einstellungen

## Anwendungsdateien

Sobald alle folgenden Schritte ausgeführt wurden, können Sie nun PowerShell Universal auf dem neuen Server installieren. Wenn Sie während einer Wiederherstellung ein Downgrade durchführen, folgen Sie bitte der [Downgrade-](/powershell-universal/de/getting-started/downgrade.md)Dokumentation.

### MSI \ Kestrel

Das MSI-Paket für PowerShell Universal installiert die Plattform als Windows-Dienst, der seinen eigenen Webserver namens Kestrel hostet. Um den Dienst zu installieren, [laden Sie die MSI herunter](https://powershelluniversal.com/downloads) und führen Sie diese aus. Wir empfehlen, genau dieselbe Version wie auf dem Quellserver zu verwenden.

Lassen Sie während der MSI-Installation alle Einstellungen auf den Standardwerten. Wir empfehlen, das Dienstkonto leer zu lassen und das Kontrollkästchen zu deaktivieren, das angibt, dass der PowerShell Universal-Dienst nach Abschluss der Installation gestartet werden soll.

Nach Abschluss der Installation wird der Dienst erstellt, läuft aber nicht. Öffnen Sie den Service Control Manager (`services.msc`) und legen Sie das Dienstkonto für den PowerShell Universal-Dienst fest. Starten Sie den Dienst.

## Fehlerbehebung bei Problemen

Beim Migrieren eines PowerShell Universal-Dienstes können Probleme auftreten, die durch Konfigurationsunterschiede zwischen den beiden Systemen entstehen. Im Folgenden finden Sie Orte, an denen Sie weitere Informationen finden.

### Ereignisanzeige

Wenn der Dienst startet und stoppt, liegt möglicherweise ein Problem mit dem Datenbankzugriff vor. Wir empfehlen, im Anwendungsprotokoll in der Ereignisanzeige nachzusehen. PowerShell Universal meldet zwei Anwendungsfehler, die .NET im Namen enthalten. Der zweite der beiden Fehler liefert eine für Menschen lesbare Ausnahme mit weiteren Details.

### Systemprotokolle

PowerShell Universal schreibt Systemprotokolle in das Verzeichnis %ProgramData%\PowerShellUniversal. Suchen Sie nach Zeichenfolgen, die mit `[ERR]` beginnen, um weitere Informationen über Probleme bei der Installation zu erhalten.

### Benachrichtigungen

Prüfen Sie nach der Migration des Dienstes, ob Fehlerbenachrichtigungen vorliegen, die auf eine Fehlkonfiguration des Systems hinweisen könnten.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/de/getting-started/migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
