> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/de/automatisierung/connecting-azure-automation/managed-app-migration.md).

# Wechsel zur verwalteten RealmJoin-App

Ersetzen Sie die mandantenbezogene App-Registrierung der RealmJoin Runbook Management-App und deren Client-Geheimnis durch die verwaltete mandantenübergreifende RealmJoin-App, indem Sie das RealmJoin-PowerShell-Modul verwenden.

## Überblick

Tenants, die sich vor dem PowerShell-basierten Onboarding mit Azure Automation verbunden haben, verwenden eine **RealmJoin Runbook-Verwaltung** App-Registrierung in ihrem eigenen Tenant. RealmJoin authentifiziert sich gegenüber Ihrem Automation Account mit der Client-ID und dem Client-Secret dieser App.

Neu angebundene Tenants tun dies nicht mehr: RealmJoin verwendet seine eigene **Multi-Tenant-Anwendung**, der für Ihren Automation Account die Rolle Contributor und sonst nichts gewährt wird. Sie können eine bestehende Konfiguration mit dem [RealmJoin PowerShell-Modul](/de/bereitstellung/onboarding-realmjoin-portal/advanced-setup.md).

{% hint style="info" %}
Der Wechsel zur verwalteten App wird empfohlen. Die Legacy-Konfiguration wird derzeit weiterhin unterstützt; dies kann sich künftig ändern, und betroffene Kunden werden gesondert informiert.
{% endhint %}

### Warum wechseln

* **Kein Client-Secret, das rotiert werden muss.** Das tenantspezifische Secret läuft ab und muss erneuert werden; wenn es abläuft, werden die Runbook-Synchronisierung und die Runbook-Ausführung gestoppt, bis es jemand bemerkt. Die verwaltete App hat auf Ihrer Seite kein Secret.
* **Keine App-Registrierung zu pflegen** in Ihrem Tenant.
* **Engerer Umfang.** Dem Legacy Service Principal wurde typischerweise Contributor für die gesamte Ressourcengruppe zugewiesen. Der verwalteten App wird Contributor nur für das Automation-Konto zugewiesen.
* Das Automation-Konto (Name und Ressourcengruppe), seine systemseitig zugewiesene Managed Identity mit ihrer Objekt-ID, die der Identität zugewiesenen Entra ID-Rollen und App-Berechtigungen sowie die importierten Runbooks bleiben erhalten.

## Was sich durch die Umstellung ändert

Dasselbe `Set-RJAutomationAccount` Befehl wie für eine neue Einrichtung wird verwendet, ausgerichtet auf Ihr **bestehendes** Automation-Konto. Es:

* erstellt den **RealmJoin Azure Resources** Service Principal in Ihrem Tenant, falls er noch nicht vorhanden ist
* weist ihm **Contributor** für dieses Automation-Konto zu
* setzt die Anwendungsberechtigungen der verwalteten Identität — Microsoft Graph, Exchange Online, Defender und SharePoint — für den vom Modul gebündelten Satz erneut fest
* weist RealmJoin an, sich von nun an mit der verwalteten App zu authentifizieren

Ihr Automation-Konto behält seinen Namen, seine Managed Identity und seine Objekt-ID, sodass die Entra ID-Rollen und alle Berechtigungen, die Sie ihm zugewiesen haben, gültig bleiben. Runbooks werden nicht von Grund auf neu importiert.

{% hint style="warning" %}
Die Registrierung setzt den konfigurierten **Branch** des gemeinsamen Runbook-Repositorys auf `production`. Wenn Ihr Tenant absichtlich einem anderen Branch folgt, setzen Sie ihn anschließend im Portal unter Settings → Runbooks erneut.
{% endhint %}

## Voraussetzungen

Dasselbe wie für eine neue Einrichtung — siehe [Voraussetzungen](/de/automatisierung/connecting-azure-automation.md#prerequisites) auf der Onboarding-Seite. Kurz gesagt:

* Zugriff auf den Bereich Settings im RealmJoin Portal, um den Befehl und sein Token zu erhalten
* PowerShell 5.1 oder höher, in einer frisch geöffneten lokalen Sitzung — **nicht** Azure Cloud Shell
* Ein Konto, das Service Principals erstellen und Anwendungsberechtigungen in Entra ID vergeben kann (*Global Administrator* oder *Privileged Role Administrator*) und das Rollenzuweisungen in der Subscription erstellen kann (*Owner*, oder *Contributor* plus *User Access Administrator*)

## Migration

{% stepper %}
{% step %}

#### Kopieren Sie den Befehl aus dem RealmJoin Portal

Gehen Sie im RealmJoin Portal zu **Settings → Runbooks** (<https://portal.realmjoin.com/settings/runbooks-configuration>).

Auf der Seite wird der Hinweis angezeigt **"Wechseln Sie zur verwalteten RealmJoin-App"** zusammen mit einem kopierfertigen Befehlsblock. Verwenden Sie die **Kopieren** Schaltfläche, um ihn zu kopieren.

<figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fgit-blob-84baa16d78a6621d669669725722fb774e6aa0ee%2Fmanaged-app-migration-notice.png?alt=media" alt="Settings → Runbooks with the notice &#x22;Switch to the RealmJoin managed app&#x22; and the pre-filled Set-RJAutomationAccount command"><figcaption><p>Migrationshinweis und Befehl unter Settings → Runbooks</p></figcaption></figure>

Der Befehl ist bereits mit Ihrer aktuellen Ressourcengruppe, dem Namen des Automation-Kontos und der Subscription vorausgefüllt:

```powershell
$latest = [version](Find-Module RealmJoin -Repository PSGallery -ErrorAction Stop).Version
if (-not (Get-Module -ListAvailable RealmJoin | Where-Object Version -ge $latest)) {
    Install-Module RealmJoin -Force -AllowClobber -ErrorAction Stop
}
Import-Module RealmJoin -Force
Set-RJAutomationAccount -ResourceGroupName "<ResourceGroup>" -AutomationAccountName "<AutomationAccountName>" -SubscriptionId "<SubscriptionId>" -Token "<Token>" 6>&1
```

{% hint style="warning" %}
Stellen Sie sicher `-AutomationAccountName` vorhanden ist und Ihr **bestehendes** Konto benennt. Ohne ihn erstellt das Modul ein neues, leeres Automation-Konto, anstatt das von Ihnen verwendete umzustellen.
{% endhint %}
{% endstep %}

{% step %}

#### Führen Sie den Befehl aus

Fügen Sie den Block in eine neue PowerShell-Sitzung ein und führen Sie ihn aus. Das Token ist ungefähr eine Stunde lang gültig — wenn es abgelaufen ist, laden Sie die Einstellungsseite neu und kopieren Sie den Befehl erneut.

Sie werden aufgefordert, sich mit `Connect-AzAccount`an. Die Bereitstellung meldet dann jede Ressource und Rollenzuweisung, sobald sie angewendet wird; alles, was bereits vorhanden ist, wird erkannt und übersprungen.

{% hint style="info" %}
**Danach abmelden:** die Azure-Anmeldung bleibt nach Abschluss des Befehls aktiv. Wenn Sie fertig sind, führen Sie `Disconnect-AzAccount` aus, um sich von der bestehenden Sitzung abzumelden.
{% endhint %}
{% endstep %}

{% step %}

#### Im Portal überprüfen

Kehren Sie zurück zu **Settings → Runbooks** und wählen Sie **Aktualisieren**.

Der Migrationshinweis ist verschwunden, und die Seite zeigt jetzt **Runbook-Synchronisierungseinstellungen** mit den Branch- und Hybrid Runbook Worker-Optionen sowie einem schreibgeschützten **Azure-Verbindung** Abschnitt. Client-ID und Client-Secret sind nicht mehr Teil der Konfiguration.

<figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fgit-blob-06c1123395052f67c34b525ad9254d0cb2ca2990%2Fmanaged-app-migration-verified.png?alt=media" alt="Settings → Runbooks after the switch, with Runbook sync settings and the read-only Azure connection section"><figcaption><p>Runbook-Konfiguration nach der Umstellung</p></figcaption></figure>

Prüfen Sie, ob der Branch der gewünschte ist, und führen Sie dann ein Runbook aus, um zu bestätigen, dass die Ausführung weiterhin funktioniert.
{% endstep %}

{% step %}

#### Alte App-Registrierung bereinigen

Sobald alles funktioniert, kann die **RealmJoin Runbook-Verwaltung** App-Registrierung für Runbooks nicht mehr verwendet werden und kann in Entra ID zusammen mit ihrer Contributor-Rollenzuweisung für die Ressourcengruppe entfernt werden.

{% hint style="warning" %}
Prüfen Sie zuerst, was sonst noch diese App-Registrierung verwendet. Es ist dieselbe App, die die Legacy [Log Analytics](/de/uberwachung-and-protokolle/log-analytics.md) Einrichtung möglicherweise wiederverwendet — wenn Ihr Tenant dort noch die Data Collector API verwendet oder weiterhin Protokolldaten liest, die vor dieser Migration geschrieben wurden, werden die App-Registrierung und ihr Secret weiterhin benötigt. Siehe [Migration zur Log Ingestion API](/de/uberwachung-and-protokolle/log-ingestion-api-migration.md).
{% endhint %}
{% endstep %}
{% endstepper %}

## Fehlerbehebung

<details>

<summary>"RealmJoin-Modul ist veraltet - die Ausführung kann nicht fortgesetzt werden"</summary>

Jedes Cmdlet überprüft einmal pro Sitzung, ob Sie die aktuell veröffentlichte Version verwenden. Installieren Sie die aktuelle Version, schließen Sie dann die Sitzung und öffnen Sie eine neue:

```powershell
Install-Module -Name RealmJoin -Force -Scope CurrentUser
```

</details>

<details>

<summary>Es wird ein Konflikt der Modulversion gemeldet</summary>

Ein `Az.*` Modul in einer anderen Version als der vom RealmJoin-Modul fest verdrahteten ist bereits in der Sitzung geladen. Dies kann in der laufenden Sitzung nicht behoben werden — schließen Sie PowerShell, öffnen Sie eine neue Sitzung und führen Sie den Befehl erneut aus. Das ist auch der Grund, Azure Cloud Shell nicht zu verwenden.

</details>

<details>

<summary>Die Bereitstellung schlägt beim Erstellen von Rollenzuweisungen fehl</summary>

Das Erstellen der Contributor-Zuweisung für das Automation-Konto erfordert eine Rolle, die Zugriffsrechte verwalten kann — zum Beispiel *Owner*, *User Access Administrator* oder *Role Based Access Control Administrator*. *Contributor* allein reicht nicht aus.

Bereits vorhandene Rollenzuweisungen werden erkannt und übersprungen, daher ist ein erneutes Ausführen des Befehls nach Korrektur der Berechtigungen sicher.

</details>

<details>

<summary>Die Bereitstellung schlägt beim Zuweisen von Anwendungsberechtigungen fehl</summary>

Das Zuweisen der App-Rollen für Graph, Exchange, Defender und SharePoint an die verwaltete Identität erfordert *Global Administrator* oder *Privileged Role Administrator*. Lassen Sie den Befehl von jemandem mit dieser Rolle ausführen, oder führen Sie ihn selbst erneut aus, nachdem die Rolle aktiviert wurde.

</details>

<details>

<summary>Die Runbook-Synchronisierung funktioniert nach der Umstellung nicht mehr</summary>

Öffnen Sie **Settings → Runbooks** und prüfen Sie die Warnung oben auf der Seite — RealmJoin überprüft die Konfiguration des Automation-Kontos jedes Mal, wenn die Seite geladen wird. Verwenden Sie dann **Cmdlet anzeigen** unter Azure-Verbindung, um den Einrichtungsbefehl erneut auszuführen; er ist idempotent und wendet alles, was fehlt, erneut an.

</details>


---

# 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.realmjoin.com/de/automatisierung/connecting-azure-automation/managed-app-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.
