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.
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.
Copy-Item $ENV:ProgramData\UniversalAutomation\Repository \\newServer\C$\ProgramData\UniversalAutomation\Repository -RecurseDatenbank
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.
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 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 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.
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. 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.
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.

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.
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 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-Dokumentation.
MSI \ Kestrel
Das MSI-Paket für PowerShell Universal installiert die Plattform als Windows-Dienst, der einen eigenen Webserver namens Kestrel hostet. Um den Dienst zu installieren, laden Sie die MSI herunter und führen Sie sie aus. Wir empfehlen, exakt 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.
Zuletzt aktualisiert
War das hilfreich?