> 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/cli/da/vejledninger/secrets/run-with-secrets.md).

# Kør en kommando med dens hemmeligheder

Start et program med hemmeligheder fra boksen i dets miljø eller standardinput, med devo secret run, uden nogen værdi i shellen, filerne eller terminalen.

`devo secret run` er den sikreste måde at give en hemmelighed til et program. Devolutions CLI læser værdierne fra boksen, lægger dem i miljøet for netop det program, starter det og skjuler værdierne i alt det udskriver. Shellen indeholder aldrig værdien, og der skrives intet til disken.

```bash
devo secret run --env-ref DB_PASSWORD=<reference> -- <your-command> <arguments>
```

Alt efter `--` er programmet og dets argumenter. For at finde `<reference>`, se [Find referencen til en hemmelighed](/cli/da/vejledninger/secrets/find-a-reference.md).

## Vælg den rigtige måde at angive referencer på

<table><thead><tr><th width="230">VÆLG</th><th>HVAD DER SKER</th><th>BRUG DET NÅR</th></tr></thead><tbody><tr><td><code>--env-ref NAME=&#x3C;reference></code></td><td>Sætter miljøvariablen <code>NAME</code> til værdien. Gentag indstillingen for hver hemmelighed.</td><td>De starter en kommando manuelt eller fra et script.</td></tr><tr><td>En variabel der allerede indeholder en reference</td><td>Enhver miljøvariabel i shellen hvis værdi er en <code>devo://</code>-reference, erstattes af værdien for programmet.</td><td>Deres shellprofil eller CI-pipeline angiver allerede variabler som <code>DB_PASSWORD=devo://…</code>.</td></tr><tr><td><code>--env-file &#x3C;file></code></td><td>Læser <code>KEY=value</code> linjer og løser de referencer de indeholder.</td><td>Projektet har allerede en <code>.env</code>-fil. Se <a href="/cli/da/vejledninger/secrets/replace-env-files.md">Tag adgangskoderne ud af en .env-fil</a>.</td></tr><tr><td><code>--stdin-reference &#x3C;reference></code></td><td>Skriver værdien, nøjagtigt, til programmets standardinput og lukker den derefter.</td><td>Programmet læser en adgangskode fra standardinput, som <code>docker login --password-stdin</code>.</td></tr><tr><td><code>--manifest &#x3C;file></code></td><td>Læser kommandoen, dens argumenter og dens referencer fra en JSON-fil.</td><td>De vil have én startfil at gennemgå og genbruge, for eksempel til en AI-agent.</td></tr></tbody></table>

## Angiv flere hemmeligheder

Gentag `--env-ref` for hver variabel. Navne bruger bogstaver, cifre og understregninger og må ikke starte med et ciffer.

{% tabs %}
{% tab title="Bash" %}

```bash
devo secret run \
  --env-ref DB_USER=<username-reference> \
  --env-ref DB_PASSWORD=<password-reference> \
  -- ./migrate.sh
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
devo secret run `
  --env-ref DB_USER=<username-reference> `
  --env-ref DB_PASSWORD=<password-reference> `
  -- pwsh -NoProfile -File ./migrate.ps1
```

{% endtab %}
{% endtabs %}

Programmet modtager resten af miljøet som sædvanligt. Hvert variabelnavn kan kun defineres én gang på tværs af alle kilder. Hvis det samme navn kommer fra `--env-ref` og fra en variabel i shellen der indeholder en reference, stopper kommandoen med en konflikt i stedet for at vælge for Dem.

## Brug de referencer der allerede findes i Deres miljø

Hvis en variabel i den aktuelle shell indeholder en `devo://`-reference, løser `devo secret run` den for programmet uden nogen indstilling.

```bash
export DB_PASSWORD='<reference>'
devo secret run -- ./migrate.sh
```

Variablen i shellen beholder referencen. Kun programmet ser værdien. Det gælder ikke med `--manifest`, hvor manifestet viser hver reference. Med et manifest når en sådan variabel programmet som referencens klartekst, ikke værdien.

## Send en hemmelighed til standardinput

```bash
devo secret run --stdin-reference <reference> -- docker login <registry> --username <user> --password-stdin
```

Devolutions CLI skriver værdien uden et afsluttende linjeskift og lukker derefter programmets standardinput.

## Hold referencer ude af kommandolinjen

Devolutions CLI afviser et argument til programmet der er en reference, såsom `-- psql --password devo://…`. Referencer løses kun gennem `--env-ref`, `--stdin-reference`, en miljøfil eller et manifest. En reference inde i et længere argument, såsom `--password=devo://…`, afvises ikke, men løses heller ikke. Programmet modtager referenceteksten.

## Kontrollér før De kører

To indstillinger lader Dem teste en start uden at starte programmet.

<table><thead><tr><th width="160">INDSTILLING</th><th>HVAD DEN KONTROLLERER</th></tr></thead><tbody><tr><td><code>--dry-run</code></td><td>Bygger startplanen og viser en oversigt. Kommandoen, antallet af referencer, tidsgrænsen, og om maskering er slået til. Med <code>--output json</code> viser planen hver variabel med dens reference. Den kontakter ikke arbejdsområdet og leder ikke efter programmet.</td></tr><tr><td><code>--check</code></td><td>Sikrer også, at programmet findes i den aktuelle mappe eller på Deres <code>PATH</code>, og kører en læsning uden værdi af hver reference. Det bekræfter syntaksen og, for en navngiven reference eller på en lokal profil, boksen og posten. Det beviser ikke, at feltet kan læses. På Devolutions Cloud og Devolutions Server slås en kanonisk reference ikke op. Referencer fra en miljøfil kontrolleres, som de er skrevet, før <code>${NAME}</code> erstattes.</td></tr></tbody></table>

De kan bruge den ene eller den anden, ikke begge. Begge accepterer `--output json`.

## Begræns hvor længe programmet kører

```bash
devo secret run --timeout-seconds 300 --env-ref API_TOKEN=<reference> -- ./deploy.sh
```

Når tiden er gået, stopper Devolutions CLI programmet og alt det startede, og afsluttes med koden `124`. Hvis De annullerer med <kbd>Ctrl</kbd>+<kbd>C</kbd>, stopper den programmet og afsluttes med `130`. Ellers afsluttes `devo secret run` med programmets exitkode.

## Behold en registrering af starten

Tilføj `--receipt-file <path>` for at skrive en JSON-kvittering, når programmet slutter: startplanen, variabelnavnene, exitkoden, varigheden, og om programmet fik timeout eller blev annulleret. Kvitteringen indeholder ingen hemmelighedsværdi. Filen må ikke findes endnu. Devolutions CLI opretter den med private tilladelser. På macOS og Linux kan kun Deres brugerkonto læse den. På Windows kan Deres konto, systemkontoen og administratorer.

{% hint style="warning" %}
Hvis kvitteringsfilen ikke kan skrives, afsluttes `devo secret run` med koden `1`, selv om Deres program lykkedes.
{% endhint %}

## Brug et startmanifest

Et manifest er en JSON-fil der beskriver hele starten. Med `--manifest` kan De ikke tilføje `--env-ref`, `--env-file`, `--stdin-reference`, `--timeout-seconds` eller en kommando efter `--`.

```json
{
  "schemaVersion": 1,
  "command": "./deploy.sh",
  "arguments": ["--target", "staging"],
  "environment": {
    "API_TOKEN": "<reference>"
  },
  "stdinReference": "<reference>",
  "timeoutSeconds": 300,
  "workingDirectory": "<absolute-path-to-folder>"
}
```

```bash
devo secret run --manifest launch.json
```

* `command` er påkrævet. `schemaVersion` er valgfri. Hvis De angiver den, skal den være `1`. De andre egenskaber er valgfrie.
* Hver værdi i `environment` skal være én enkelt `devo://`-reference.
* `workingDirectory` skal være en absolut sti til en mappe der findes.
* Et egenskabs- eller variabelnavn må ikke forekomme to gange.

## Om maskering

Devolutions CLI holder øje med hvad programmet udskriver på standardoutput og standardfejl, og erstatter hver løst værdi med `<concealed by Devolutions>`. Hvis et værktøj skal udskrive en værdi, for eksempel for at sende den til et andet program, så tilføj `--no-masking`.

{% hint style="warning" %}
Maskering beskytter det programmet udskriver, ikke det det gør. Et program der modtager en hemmelighed, kan stadig skrive den til en fil eller sende den over netværket. Kør kun programmer De stoler på, med hemmelighederne. Se [Hvad der forbliver skjult, og hvad der ikke gør](/cli/da/vejledninger/understand/security-model.md).
{% endhint %}

## Godt at vide

* Referencer løses gennem den aktuelle kontekst. Tilføj `--context <context-name>` for at bruge et andet arbejdsområde til én kommando. Kanoniske referencer løses altid mod det arbejdsområde der ejer dem.
* En ugyldig start, såsom et forkert udformet `--env-ref`, afsluttes med koden `2` før noget læses. Se [Exitkoder og fejl](/cli/da/reference/exit-codes-and-errors.md).
* En reference der ikke løses, stopper starten før programmet starter. Se [En hemmelighedsreference løses ikke](/cli/da/hjaelp/troubleshooting/reference-does-not-resolve.md).

## Næste

* [Give an agent a credential without exposing it](/cli/da/vejledninger/ai-agents/run-an-agent.md)
* [Take the passwords out of a .env file](/cli/da/vejledninger/secrets/replace-env-files.md)
* Hver indstilling for `devo secret run`. [Kommandoer](/cli/da/reference/commands.md)


---

# 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/cli/da/vejledninger/secrets/run-with-secrets.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.
