> 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/da/getting-started/migration.md).

# Migrer og gendan

Migrer eller gendan en PowerShell Universal-server, herunder konfigurationsdata, databasetyper, appsettings.json og migrering af hemmelighedsboks.

Det er ofte ønskeligt at migrere en PowerShell Universal-serverkonfiguration fra én computer til en anden. Dette kan skyldes ændring af infrastruktur eller gendannelse fra sikkerhedskopi. Dette kan være til opgraderinger af operativsystemet eller generel datacentervedligeholdelse.

Dette dokument forklarer de trin, der er nødvendige for at migrere PowerShell Universal-konfigurationen til en anden maskine.

Vi anbefaler at stoppe PowerShell Universal-tjenesten, før De udfører migreringen eller gendannelsen.

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

Afhængigt af typen af migrering eller gendannelse behøver De muligvis ikke at udføre alle disse handlinger.

## Konfigurationsdata

Konfigurationsdatafilerne gemmes som standard i `%ProgramData%\UniversalAutomation\Repository`. Disse består af funktioner som API'er, Scripts og Apps. Hele kataloget er nødvendigt, for at konfigurationen af målsystemet kan fungere.

De kan enten kopiere mappen manuelt eller via PowerShell. Sørg for, at De medtager alle undermapper.

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

## Database

Databasemigreringen vil afhænge af den type database, der bruges.

### SQLite

De skal kopiere SQLite-databasefilen til den konfigurerede eller standardplacering for databasen. På en standardinstallation er det `%ProgramData%\UniversalAutomation\database.db`. Kontoen på målmaskinen eller tjenestekontoen skal have læse- og skriveadgang til denne databasefil.

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

Hvis De gendanner fra sikkerhedskopi, skal De muligvis [nedgradere](/powershell-universal/da/getting-started/downgrade.md) skemaet, hvis De har opgraderet versionen.

### SQL og PostgreSQL

Da disse databaser gemmes uden for PowerShell Universal-serveren, behøver De ikke at udføre en migrering af selve databasen. De skal sikre, at målserveren har netværksadgang til SQL-værten.

Hvis De gendanner fra sikkerhedskopi, skal De muligvis [nedgradere](/powershell-universal/da/getting-started/downgrade.md) skemaet, hvis De har opgraderet versionen.

## Programindstillinger

Filen `appsettings.json` til PowerShell Universal er nødvendig for at levere de passende serverindstillinger til platformen. Som standard gemmes den i `%ProgramData%\PowerShellUniversal\appsettings.json`. De skal kopiere den til den nye server på samme placering.

Denne fil indeholder konfigurationsindstillinger som HTTP-certifikat, godkendelse, indstillinger for Git-synkronisering, valgmuligheder for API-konfiguration og mere.

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

appsettings.json-filer ændres ikke mellem opgraderinger, og De har sandsynligvis ikke brug for at udføre denne handling under en gendannelse.

## Hemmelighedsbokse

PowerShell Universal indeholder 3 indbyggede hemmelighedsbokse, der muligvis skal migreres. Databaseboksen følger med databasemigreringen og kræver ikke ekstra trin. Hvis De udfører en gendannelse, er det usandsynligt, at De får brug for at udføre disse gendannelseshandlinger, medmindre hemmelighedsboksene er blevet beskadiget.

### PSUSecretStore

Boksen `PSUSecretStore` bruger Microsofts [SecretStore-modul](https://learn.microsoft.com/en-us/powershell/utility-modules/secretmanagement/get-started/using-secretstore?view=ps-modules). Dette modul gemmer hemmeligheder på disken ved hjælp af symmetrisk kryptering. En standardkrypteringsnøgle følger med installationer af PowerShell Universal. Hvis nøglen blev opdateret, findes den nye nøgle i den appsettings.json-fil, De migrerede i forrige trin. De skal også flytte det fysiske hemmelighedslager til den nye servers filsystem.

Modulet SecretStore bruger en brugerspecifik lagerplacering for at sikre, at ACL'er håndhæves på selve filerne. De skal sørge for at kopiere boksens indhold til kontoen for den bruger, der skal køre PowerShell Universal på det nye system.

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

### BuiltInLocalVault

Boksen `BuiltInLocalVault` er kun tilgængelig på Windows og bruger Credential Manager til at gemme hemmeligheder. De skal genskabe disse hemmeligheder i Credential Manager-lageret på det nye system.

I Credential Manager finder De PowerShell-hemmeligheder, der er gemt med præfikset `ps:`.

Selvom det ikke er muligt at udtrække legitimationsoplysninger direkte fra brugergrænsefladen i Credential Manager, kan De bruge Secret Management-modulerne direkte. For at hente hemmeligheder kan De gøre følgende.

```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
```

På den nye server kan De gøre det modsatte og kalde `Set-Secret`. Bemærk, at disse kommandoer skal køres som den tjenestekonto, der kører PowerShell Universal, for at gemme dem korrekt i Credential Manager-kontoen for brugeren.

## Godkendelse

Visse godkendelsestyper kræver konfiguration uden for PowerShell Universal. Medmindre De flytter den maskine, der kører PowerShell Universal, eller ændrer de tilgængelige URL'er, behøver De ikke at udføre disse handlinger.

### OpenID Connect

Sørg for, at de korrekte logon-URL'er er konfigureret i Deres identitetsudbyder (f.eks. Azure AD eller Okta), hvis serverens værtsnavn ændres. Uden korrekt konfigurerede logon-URL'er kan brugerne ikke logge på det nye system.

### Windows

[Windows-godkendelse](/powershell-universal/da/sikkerhed/enterprise-security/windows-sso.md) kræver opsætning af et SPN for den tjenestekonto, der kører PowerShell Universal-tjenesten. Sørg for, at dette SPN er på plads, før De forsøger at bruge Windows-godkendelse med det nye system.

## Andre ressourcer og overvejelser

Der kan være andre ressourcer, som PowerShell Universal bruger på systemet, og som bør tages i betragtning ved migrering eller gendannelse af servere. Typisk behøver De ikke at bekymre Dem om disse ressourcer under en gendannelse, da de bør forblive de samme, hvis maskinen ikke er ændret.

* PowerShell-moduler
* Miljøvariabler
* Lokale kontoprivilegier
* Filsystemtilladelser
* Proxykonfiguration
* Certifikater
* Git-SSH-nøgler eller legitimationsoplysninger
* DNS-indstillinger

## Programfiler

Når alle de følgende trin er gennemført, kan De nu installere PowerShell Universal på den nye server. Hvis De nedgraderer under en gendannelse, skal De følge [Downgrade ](/powershell-universal/da/getting-started/downgrade.md)dokumentationen.

### MSI \ Kestrel

MSI-pakken til PowerShell Universal installerer platformen som en Windows-tjeneste, der er vært for sin egen webserver kaldet Kestrel. For at installere tjenesten skal De [downloade MSI'en](https://devolutions.net/download-center/powershell-universal/) og køre den. Vi anbefaler at bruge nøjagtig samme version som kildeserveren.

Under MSI-installationen skal De lade alle indstillinger stå som standard. Vi anbefaler at lade tjenestekontoen stå tom og fjerne markeringen i afkrydsningsfeltet, der angiver, at PowerShell Universal-tjenesten skal startes, når installationen er fuldført.

Når installationen er fuldført, oprettes tjenesten, men den kører ikke. Åbn Service Control Manager (`services.msc`), og angiv tjenestekontoen for PowerShell Universal-tjenesten. Start tjenesten.

## Fejlfinding af problemer

Når De migrerer en PowerShell Universal-tjeneste, kan De støde på problemer, der opstår på grund af konfigurationsforskelle mellem de to systemer. Følgende er steder, hvor De kan finde flere oplysninger.

### Hændelseslog

hvis tjenesten starter og stopper, kan der være et problem med databaseadgangen. Vi anbefaler at se i programloggen i Event Viewer. PowerShell Universal rapporterer to programfejl, der indeholder .NET i navnet. Den anden af de to fejl giver en menneskelæsbar undtagelse med flere detaljer.

### Systemlogge

PowerShell Universal vil skrive systemlogge til kataloget %ProgramData%\PowerShellUniversal. Søg efter strenge, der starter med `[ERR]`, for at indsamle flere oplysninger om problemer med installationen.

### Meddelelser

Når tjenesten er migreret, skal De kontrollere, om der er fejlmeddelelser, der kan indikere fejlkonfiguration af systemet.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
