> 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/de/anleitungen/secrets/run-with-secrets.md).

# Einen Befehl mit seinen Geheimnissen ausführen

Ein Programm mit Geheimnissen aus Ihrem Tresor in seiner Umgebung oder Standardeingabe starten, mit devo secret run, ohne Wert in Ihrer Shell, Ihren Dateien oder Ihrem Terminal.

`devo secret run` ist der sicherste Weg, einem Programm ein Geheimnis zu geben. Devolutions CLI liest die Werte aus Ihrem Tresor, setzt sie in die Umgebung genau dieses Programms, startet es und verbirgt die Werte in allem, was es ausgibt. Ihre Shell enthält den Wert nie, und nichts wird auf die Festplatte geschrieben.

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

Alles nach `--` ist das Programm und seine Argumente. Um `<reference>` zu finden, siehe [Die Referenz zu einem Geheimnis finden](/cli/de/anleitungen/secrets/find-a-reference.md).

## Die richtige Art wählen, Referenzen zu übergeben

<table><thead><tr><th width="230">AUSWÄHLEN</th><th>WAS PASSIERT</th><th>VERWENDEN, WENN</th></tr></thead><tbody><tr><td><code>--env-ref NAME=&#x3C;reference></code></td><td>Setzt die Umgebungsvariable <code>NAME</code> auf den Wert. Wiederholen Sie die Option für jedes Geheimnis.</td><td>Sie starten einen Befehl von Hand oder aus einem Skript.</td></tr><tr><td>Eine Variable, die bereits eine Referenz enthält</td><td>Jede Umgebungsvariable Ihrer Shell, deren Wert eine <code>devo://</code>-Referenz ist, wird für das Programm durch den Wert ersetzt.</td><td>Ihr Shell-Profil oder Ihre CI-Pipeline setzt bereits Variablen wie <code>DB_PASSWORD=devo://…</code>.</td></tr><tr><td><code>--env-file &#x3C;file></code></td><td>Liest <code>KEY=value</code> Zeilen und löst die Referenzen auf, die sie enthalten.</td><td>Ihr Projekt hat bereits eine <code>.env</code>-Datei. Siehe <a href="/cli/de/anleitungen/secrets/replace-env-files.md">Die Passwörter aus einer .env-Datei nehmen</a>.</td></tr><tr><td><code>--stdin-reference &#x3C;reference></code></td><td>Schreibt den Wert genau auf die Standardeingabe des Programms und schließt sie dann.</td><td>Das Programm liest ein Passwort von der Standardeingabe, wie <code>docker login --password-stdin</code>.</td></tr><tr><td><code>--manifest &#x3C;file></code></td><td>Liest den Befehl, seine Argumente und seine Referenzen aus einer JSON-Datei.</td><td>Sie wollen eine Startdatei zum Prüfen und Wiederverwenden, zum Beispiel für einen KI-Agenten.</td></tr></tbody></table>

## Mehrere Geheimnisse übergeben

Wiederholen Sie `--env-ref` für jede Variable. Namen verwenden Buchstaben, Ziffern und Unterstriche und dürfen nicht mit einer Ziffer beginnen.

{% 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 %}

Das Programm erhält den Rest Ihrer Umgebung wie üblich. Jeder Variablenname kann über alle Quellen nur einmal definiert sein: Wenn derselbe Name aus `--env-ref` und aus einer Variable Ihrer Shell kommt, die eine Referenz enthält, stoppt der Befehl mit einem Konflikt, statt für Sie zu wählen.

## Die Referenzen verwenden, die bereits in Ihrer Umgebung vorhanden sind

Wenn eine Variable Ihrer aktuellen Shell eine `devo://`-Referenz enthält, löst `devo secret run` sie für das Programm ohne jede Option auf:

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

Die Variable Ihrer Shell behält die Referenz. Nur das Programm sieht den Wert. Das gilt nicht mit `--manifest`, wo das Manifest jede Referenz auflistet: Mit einem Manifest erreicht eine solche Variable das Programm als Klartext der Referenz, nicht als Wert.

## Ein Geheimnis an die Standardeingabe senden

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

Devolutions CLI schreibt den Wert ohne abschließenden Zeilenumbruch und schließt dann die Standardeingabe des Programms.

## Referenzen von der Befehlszeile fernhalten

Devolutions CLI lehnt ein Argument des Programms ab, das eine Referenz ist, wie `-- psql --password devo://…`. Referenzen werden nur über `--env-ref`, `--stdin-reference`, eine Umgebungsdatei oder ein Manifest aufgelöst. Eine Referenz in einem längeren Argument, wie `--password=devo://…`, wird nicht abgelehnt, aber auch nicht aufgelöst: Das Programm erhält den Referenztext.

## Prüfen Sie, bevor Sie ausführen

Zwei Optionen lassen Sie einen Start testen, ohne das Programm zu starten:

<table><thead><tr><th width="160">OPTION</th><th>WAS ES PRÜFT</th></tr></thead><tbody><tr><td><code>--dry-run</code></td><td>Erstellt den Startplan und zeigt eine Zusammenfassung: den Befehl, die Anzahl der Referenzen, das Zeitlimit und ob das Maskieren eingeschaltet ist. Mit <code>--output json</code> listet der Plan jede Variable mit ihrer Referenz auf. Er kontaktiert Ihren Workspace nicht und sucht das Programm nicht.</td></tr><tr><td><code>--check</code></td><td>Stellt außerdem sicher, dass das Programm im aktuellen Ordner oder in Ihrem <code>PATH</code> existiert, und führt ein wertfreies Lesen jeder Referenz aus. Das bestätigt die Syntax und, bei einer benannten Referenz oder einem lokalen Profil, den Tresor und den Eintrag. Es beweist nicht, dass das Feld gelesen werden kann: Auf Devolutions Cloud und Devolutions Server wird eine kanonische Referenz nicht nachgeschlagen. Referenzen aus einer Umgebungsdatei werden geprüft, wie sie geschrieben sind, bevor <code>${NAME}</code> ersetzt wird.</td></tr></tbody></table>

Sie können das eine oder das andere verwenden, nicht beides. Beide akzeptieren `--output json`.

## Begrenzen, wie lange das Programm läuft

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

Wenn die Zeit abgelaufen ist, stoppt Devolutions CLI das Programm und alles, was es gestartet hat, und endet mit Code `124`. Wenn Sie mit <kbd>Strg</kbd>+<kbd>C</kbd> abbrechen, stoppt es das Programm und endet mit `130`. Andernfalls endet `devo secret run` mit dem Exitcode Ihres Programms.

## Eine Aufzeichnung des Starts behalten

Fügen Sie `--receipt-file <path>` hinzu, um nach dem Ende des Programms eine JSON-Quittung zu schreiben: den Startplan, die Variablennamen, den Exitcode, die Dauer und ob das Programm das Zeitlimit erreicht hat oder abgebrochen wurde. Die Quittung enthält keinen Geheimniswert. Die Datei darf noch nicht existieren. Devolutions CLI erstellt sie mit privaten Berechtigungen: unter macOS und Linux kann nur Ihr Benutzerkonto sie lesen; unter Windows Ihr Konto, das Systemkonto und Administratoren.

{% hint style="warning" %}
Wenn die Belegdatei nicht geschrieben werden kann, endet `devo secret run` mit Code `1`, auch wenn Ihr Programm erfolgreich war.
{% endhint %}

## Ein Startmanifest verwenden

Ein Manifest ist eine JSON-Datei, die den ganzen Start beschreibt. Mit `--manifest` können Sie `--env-ref`, `--env-file`, `--stdin-reference`, `--timeout-seconds` oder einen Befehl nach `--` nicht hinzufügen.

```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` ist erforderlich. `schemaVersion` ist optional; wenn Sie es setzen, muss es `1` sein. Die anderen Eigenschaften sind optional.
* Jeder Wert in `environment` muss eine einzelne Referenz `devo://` sein.
* `workingDirectory` muss ein absoluter Pfad zu einem vorhandenen Ordner sein.
* Ein Eigenschafts- oder Variablenname darf nicht zweimal vorkommen.

## Über das Maskieren

Devolutions CLI beobachtet, was das Programm auf seiner Standardausgabe und seiner Fehlerausgabe schreibt, und ersetzt jeden aufgelösten Wert durch `<concealed by Devolutions>`. Wenn ein Tool einen Wert ausgeben muss, zum Beispiel um ihn an ein anderes Programm weiterzugeben, fügen Sie `--no-masking` hinzu.

{% hint style="warning" %}
Das Maskieren schützt, was das Programm ausgibt, nicht was es tut. Ein Programm, das ein Geheimnis empfängt, kann es trotzdem in eine Datei schreiben oder über das Netzwerk senden. Führen Sie mit Ihren Geheimnissen nur Programme aus, denen Sie vertrauen. Siehe [Was verborgen bleibt und was nicht](/cli/de/anleitungen/understand/security-model.md).
{% endhint %}

## Gut zu wissen

* Referenzen werden über den aktuellen Kontext aufgelöst. Fügen Sie `--context <context-name>` hinzu, um für einen Befehl einen anderen Workspace zu verwenden. Kanonische Referenzen werden immer gegen den Workspace aufgelöst, dem sie gehören.
* Ein ungültiger Start, etwa ein fehlerhaftes `--env-ref`, endet mit dem Code `2`, bevor etwas gelesen wird. Siehe [Exitcodes und Fehler](/cli/de/referenz/exit-codes-and-errors.md).
* Eine Referenz, die sich nicht auflöst, stoppt den Start, bevor das Programm startet. Siehe [Eine Geheimnisreferenz wird nicht aufgelöst](/cli/de/hilfe/troubleshooting/reference-does-not-resolve.md).

## Weiter

* [Give an agent a credential without exposing it](/cli/de/anleitungen/ai-agents/run-an-agent.md)
* [Take the passwords out of a .env file](/cli/de/anleitungen/secrets/replace-env-files.md)
* Jede Option von `devo secret run`: [Befehle](/cli/de/referenz/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/de/anleitungen/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.
