> 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/config/environments.md).

# Miljøer

Konfigurer kørselsmiljøer i PowerShell Universal, herunder isolerede PowerShell-versioner, virtuelle miljøer, kørsel med Devolutions Agent og minimal tilstand.

Som standard sker godkendelse og autorisation i processen `Universal.Server.exe`. For at køre disse fra en anden proces kan De vælge et miljø ved at angive parameteren `-SecurityEnvironment` for `Set-PSUSetting` i `settings.ps1`. Se [Sikkerhed](/powershell-universal/da/sikkerhed/security.md#environment) for at få flere oplysninger om dette.

Udførelsesmiljøer definerer PowerShell-runtimen, moduler, variabler og udførelsesindstillinger, der bruges af scripts, API'er, apps, automatiseringsjob og sikkerhedsprocesser. Administrer dem under **Manage > Environments > Environments** eller i `environments.ps1`.

## Vælg en miljøtype

| Type                    | Brug                                                                                                                                                  |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Integrated              | Kører direkte i PowerShell Universal-serverprocessen.                                                                                                 |
| PowerShell 7            | Bruger den PowerShell 7-vært, der følger med PowerShell Universal.                                                                                    |
| PowerShell 7 (Isolated) | Bruger [multi-pwsh](https://github.com/Devolutions/multi-pwsh) til at køre en valgt PowerShell 7-version, valgfrit i et administreret virtuelt miljø. |
| Windows PowerShell 5.1  | Bruger den Windows PowerShell-runtime, der er installeret på serveren.                                                                                |
| Custom                  | Starter den eksekverbare fil og de argumenter, De angiver.                                                                                            |
| Container               | Kører i det konfigurerede containerimage til Devolutions Agent.                                                                                       |

Alle miljøer kan definere moduler, PowerShell-variabler, `PSModulePath`-poster, opstartsscripts og avancerede runspace-indstillinger. Vælg et miljø efter navn, når De konfigurerer et script, en tidsplan, en API, en app, en terminal eller et sikkerhedsmiljø.

## Konfigurer ressourcer

Brug fanen **Resources** til at konfigurere disse indstillinger, når De redigerer et miljø:

* **Modules**: Modulnavne eller stier til modulfiler, som PowerShell Universal importerer, når det opretter runspaces.
* **Variables**: Navne på PowerShell Universal-variabler, der skal gøres tilgængelige. Brug `*` til at medtage alle matchende variabler.
* **PSModulePath**: Yderligere modulsøgestier for miljøet.
* **Startup scripts**: Lagerrelative scripts, der kører, når et nyt runspace oprettes.

Opstartsscripts kører én gang for hvert nyt runspace. Scriptene kører én gang, når et job starter, men kan køre oftere for API'er og apps, efterhånden som deres runspaces oprettes. Platformvariabler er ikke tilgængelige i opstartsscripts.

## PowerShell 7 isolerede miljøer

Et isoleret miljø bruger multi-pwsh i stedet for den PowerShell-vært, der følger med PowerShell Universal. Vælg denne type, når et script har brug for en bestemt PowerShell 7-udgivelse eller stærkere procesisolering fra serverens PowerShell SDK og indlæste assemblyer.

Hvert isoleret miljø skal have en **PowerShell version**. PowerShell Universal afviser et isoleret miljø, der ikke angiver en.

### Installer og vælg PowerShell-versioner

1. Gå til **Manage > Environments > PowerShell Versions**.
2. Indtast en multi-pwsh-vælger som `stable`, `preview`, `lts` eller `7.4`, og vælg derefter **Install**.
3. Opdater versionslisten. Den viser hver version, dens sti, omfang, og om den er tilgængelig for isolerede miljøer.
4. Opret eller rediger et miljø, vælg **PowerShell 7 (Isolated)**, og vælg en installeret isoleret version.

Kun versioner, der er markeret **Isolated**, kan vælges til isolerede miljøer. De kan fjerne versioner, der er installeret via multi-pwsh, fra den samme fane, når de ikke længere er nødvendige.

Opret et isoleret miljø i konfigurationen med en konkret version eller en multi-pwsh-vælger:

```powershell
New-PSUEnvironment `
    -Name 'Isolated PowerShell 7.4' `
    -Type Isolated `
    -PowerShellVersion '7.4'
```

## Administrerede virtuelle miljøer

Aktivér **Virtual** på et isoleret miljø for at køre det i et administreret virtuelt multi-pwsh-miljø. PowerShell Universal opretter det virtuelle miljø, før det bruges, og vælger det, hver gang miljøet starter et job.

Identiteten for det administrerede virtuelle miljø udledes af miljøets navn, PowerShell-version, moduler, `PSModulePath` og indstillinger for opstartsscript. Ændring af disse indstillinger opretter en ny administreret identitet. PowerShell Universal rydder op i administrerede virtuelle miljøer, der ikke længere refereres til af et miljø.

Brug et virtuelt miljø, når De ønsker, at multi-pwsh-kørselstilstanden forbliver isoleret fra andre miljøer. Containermiljøer bruger også et administreret virtuelt miljø, når **Virtual** er aktiveret, eller når miljøet har konfigurerede moduler.

```powershell
New-PSUEnvironment `
    -Name 'Isolated PowerShell 7.4 virtual' `
    -Type Isolated `
    -PowerShellVersion '7.4' `
    -Virtual `
    -Modules @('Az.Accounts')
```

### Understøttelse af Devolutions Agent

Når et job er målrettet en forbundet Devolutions Agent, bruger PowerShell Universal miljøets PowerShell-versionsvælger sammen med agentens eksekverbare multi-pwsh-fil. For et isoleret miljø eller et containermiljø, der bruger et administreret virtuelt miljø, eksporterer serveren det virtuelle miljø, og agenten importerer det, før jobbet starter.

Denne overførsel er automatisk og bruger en kortlivet, godkendt download-URL. Agenten genbruger et allerede importeret matchende virtuelt miljø. Konfigurer det samme miljø som normalt, og vælg derefter Devolutions Agent eller computergruppen i indstillingerne for kørsel eller tidsplan.

## Minimale PowerShell 7-miljøer

Aktivér **Minimal** på et PowerShell 7-miljø for at køre jobs i en dedikeret PowerShell-underproces via lokalt PowerShell-remoting. Denne tilstand undgår indlæsning af de normale PowerShell Universal-hosting-assemblies i scriptprocessen, hvilket er nyttigt for scripts og moduler, der har assembly-binding-konflikter med serveren.

Minimal-tilstand er tilgængelig for PowerShell 7, Windows PowerShell 5.1 og Custom-miljøer. PowerShell Universal bevarer jobbets formaterede output og pipelineoutput fra minimale PowerShell 7-kørsler, så output forbliver tilgængeligt i jobloggen og jobhistorikken.

Minimale miljøer har stadig vigtige begrænsninger:

* Minimale miljøer understøtter ikke feedback, fremdriftsrapportering, hemmeligheder eller integrerede Universal-cmdletter.
* Konfigurerede variabelværdier, der ikke er hemmeligheder, leveres som procesmiljøvariabler.
* Brug det normale PowerShell 7-miljø, når scriptet har brug for fuld integration med PowerShell Universal-værten.

For at aktivere det i admin console skal De redigere et PowerShell 7-miljø og vælge **Minimal**. I konfigurationen:

```powershell
New-PSUEnvironment `
    -Name 'PowerShell 7 Minimal' `
    -Type PowerShell7 `
    -Minimal `
    -Variables @('*')
```

Et minimalt Custom-miljø kan køre en anden eksekverbar fil på kommandolinjen. Brug `{scriptPath}` i argumenterne, når den eksekverbare fil skal modtage den løste scriptsti.

```powershell
New-PSUEnvironment `
    -Name 'Python' `
    -Path 'python' `
    -Arguments '{scriptPath}' `
    -Variables @('*') `
    -Minimal
```

## Standardmiljøer

### Integrated

Miljøet Integrated kører scripts direkte i serverprocessen i PowerShell Universal. Det undgår serialisering mellem processer og er enkelt at konfigurere, men kan ikke køre med alternative legitimationsoplysninger eller bruge en anden PowerShell-version. Fordi scripts deler serverprocessen, kan problematiske scripts påvirke platformens stabilitet.

Miljøet Integrated er altid tilgængeligt. De kan stadig konfigurere moduler eller vedvarende runspaces til det i `environments.ps1`:

```powershell
New-PSUEnvironment -Name 'Integrated' -Path 'none' -Modules @('ActiveDirectory')
```

### PowerShell 7

Standardmiljøet PowerShell 7 bruger den PowerShell-vært, der følger med PowerShell Universal. Det er den anbefalede standard for bred kompatibilitet med tredjepartsmoduler. Hvis et script kræver Windows Forms eller en anden afhængighed, der kun findes i Windows PowerShell, skal De bruge Windows PowerShell 5.1 eller et Custom-miljø i stedet.

### Windows PowerShell 5.1

Windows PowerShell 5.1 bruger den Windows PowerShell-runtime, der er installeret på serveren. Brug den til scripts og moduler, der kræver Windows PowerShell.

## Brug miljøer på tværs af PowerShell Universal

* **API'er**: Angiv `-ApiEnvironment` med `Set-PSUSetting` i `settings.ps1`.
* **Automatisering**: Angiv `-Environment` for scripts og tidsplaner, eller vælg det, når De starter et job.
* **Apps**: Angiv `-Environment` med `New-PSUApp`.
* **Sikkerhed**: Angiv `-SecurityEnvironment` med `Set-PSUSetting`, når godkendelse og autorisation skal køre uden for serverprocessen.

## Windows PowerShell-kompatibilitet

PowerShell 7 kan automatisk bruge lokal Windows PowerShell-remoting, når en kommando eller et modul ikke er tilgængeligt. Denne kompatibilitetsfunktion opretter en Windows PowerShell-proces pr. runspace og kan øge antallet af processer, hukommelsesforbruget, CPU-forbruget og serialiseringsoverhead væsentligt.

Deaktivér implicit kompatibilitet med Windows PowerShell under fanen **Advanced** for miljøet, når den ikke er påkrævet. Den er deaktiveret for miljøet Integrated og kan ikke aktiveres der.

Hvis De er nødt til at bruge kompatibilitet, skal De fjerne kompatibilitetssessionen, når kommandoen er fuldført:

```powershell
Import-Module PSScheduledJob -UseWindowsPowerShell
Get-ScheduledJob | Out-Null
Get-PSSession -Name 'WinPSCompatSession' | Remove-PSSession
```

## PowerShell-cmdlets

Administrer miljøer med `New-PSUEnvironment`, `Get-PSUEnvironment`, `Set-PSUEnvironment` og `Remove-PSUEnvironment`.


---

# 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/config/environments.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.
