> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Übersicht über Custom Scripts

> Stellen Sie benutzerdefinierte Skripte mit Iru Endpoint auf verwalteten Mac- und Windows-Computern bereit. Führen Sie Shell-, Python-, PowerShell- oder Batch-Skripte bei der Registrierung oder nach Zeitplan aus.

<Callout icon="list-check" color="#B84A7A" iconType="regular">Custom Scripts sind für Mac-Computer und Windows-Computer verfügbar</Callout>

### Was ist ein Custom Script?

Benutzerdefinierte Skripte in Iru Endpoint automatisieren Aufgaben und konfigurieren Einstellungen auf verwalteten Geräten. Sie können sie sich als eine Reihe von Anweisungen vorstellen, die mit dem Iru Agent auf registrierten Geräten bereitgestellt und ausgeführt werden können. Mit benutzerdefinierten Skripten können Sie Geräteeinstellungen konfigurieren, Softwareanwendungen installieren oder aktualisieren, Wartungsaufgaben ausführen und Sicherheitsrichtlinien durchsetzen. Sie können benutzerdefinierte Skripte auch verwenden, um Geräteinformationen wie Hardware-Inventar oder Systemprotokolle zu erfassen. Eine Sammlung vorgefertigter und regelmäßig gepflegter Skripte finden Sie in unserem [GitHub-Repository](https://github.com/kandji-inc/support/tree/main/Scripts).

<Tabs>
  <Tab title="Mac">
    <Note>
      Das Custom Script Library Item von Iru Endpoint kann Skripte in verschiedenen Sprachen bereitstellen. Unser Support-Team kann jedoch am besten bei der Fehlerbehebung von Skripten helfen, die in shell, bash, zshell oder Python geschrieben sind. Der Support kann auch bei AppleScript helfen, sofern es von einer der unterstützten Sprachen aufgerufen wird.
    </Note>

    ### So funktionieren Custom Scripts

    Der Iru Agent führt benutzerdefinierte Skripte auf registrierten Mac-Computern aus. Ihr benutzerdefiniertes Skript kann eine beliebige Shell oder einen beliebigen Interpreter auf dem Mac-Computer angeben. Wenn keine Shell bzw. kein Interpreter angegeben ist, wird die Standard-Shell (/bin/sh) verwendet. Benutzerdefinierte Skripte werden immer als root-Benutzer ausgeführt.

    #### Ausführungshäufigkeit

    Je nach dem Skript, das Sie bereitstellen möchten, können Sie festlegen, ob es einmal bei jedem Check-in, einmal pro Tag oder bei Bedarf über Self Service ausgeführt wird.

    <AccordionGroup>
      <Accordion title="Einmal pro Gerät installieren">
        Bei **Einmal pro Gerät installieren** führt Iru das Audit-Skript bei jedem Check-in erneut aus, bis das Library Item für dieses Gerät den Status **Pass** erreicht. Wenn ein Korrekturskript aktiviert ist und erfolgreich ausgeführt wird, kann das Library Item **Behoben** anzeigen, aber Iru führt das Audit-Skript bei späteren Check-ins weiterhin aus, bis es **Pass** erreicht.
      </Accordion>

      <Accordion title="Run every 15 min">
        Das Skript wird bei jedem Check-in ausgeführt (ca. alle 15 Minuten).
      </Accordion>

      <Accordion title="Run daily">
        Das Skript wird alle 24 Stunden ausgeführt, basierend auf dem Zeitpunkt der vorherigen Ausführung.
      </Accordion>

      <Accordion title="Bei Bedarf aus Self Service ausführen">
        Das Skript wird nie automatisch ausgeführt und nur als optionales Element in Self Service angeboten. Nach der Ausführung des Elements wird die Schaltfläche **Run** in **Run again** umbenannt.
      </Accordion>
    </AccordionGroup>

    <Callout icon="lightbulb" color="#2563EB" iconType="regular">
      Das Custom Script Library Item kann in den ersten drei oben genannten Szenarien auch über Self Service angeboten werden.
    </Callout>

    #### Exit-Codes und Ausgaben

    <AccordionGroup>
      <Accordion title="Ergebnisse der Exit-Codes">
        Wenn das Audit-Skript mit Code **0** beendet wird, hat diese Ausführung den Status **Pass**. Wenn das Audit-Skript mit einem Exit-Code ungleich null beendet wird, hat diese Ausführung den Status **Fehler**. Wenn eine Ausführung den Status **Fehler** hat, erzeugt Iru eine Warnung. Details finden Sie in unserem Support-Artikel [Global Alerts](/de/endpoint/devices/global-alerts).
      </Accordion>

      <Accordion title="Protokollierung der Skriptausgabe">
        Stdout und Stderr werden in den Audit-Informationen des Skripts aufgezeichnet, die auf der Gerätestatusseite oder der Statusseite des benutzerdefinierten Skripts zu finden sind.
      </Accordion>
    </AccordionGroup>

    #### Korrektur

    Ein Korrekturskript ermöglicht es, das Haupt-**Überwachungsskript** als echtes Audit-Skript zu verwenden, um die Systemkonfiguration oder den Anwendungsstatus zu prüfen. Wenn das Audit-Skript mit einem Exit-Code ungleich null beendet wird, hat diese Ausführung den Status **Fehler**; Iru führt dann das Korrekturskript aus.

    <Check>
      Wenn das Korrekturskript mit Code **0** beendet wird, lautet der Status des Library Item für dieses Gerät **Behoben**. Wenn das Korrekturskript mit einem Exit-Code ungleich null beendet wird, lautet der Status des Library Item für dieses Gerät **Fehler**, und Iru erzeugt eine Warnung. Details finden Sie in unserem Support-Artikel [Global Alerts](/de/endpoint/devices/global-alerts).
    </Check>

    #### Neustartoptionen

    Mit der Neustartoption können Sie nach einer erfolgreichen Skriptausführung einen Neustart erzwingen. Wenn Sie diese Option auswählen, erhält der Benutzer einen Neustart-Timer von der Menüleisten-App des Iru Agent. Dieser Timer beträgt 5 Minuten, wenn das Element über Self Service gestartet wurde, oder 30 Minuten, wenn es auf andere Weise gestartet wurde, z. B. während eines Check-ins.

    <Tip>
      Die Neustartoption verhält sich unterschiedlich, je nachdem, ob ein Korrekturskript verwendet wird:

      * Wenn ein [**Remediation**-Skript](#remediation) verwendet wird, löst ein Beenden des **Remediation**-Skripts mit 0 den Neustart-Countdown aus.
      * Wenn *kein* **Remediation**-Skript verwendet wird, löst ein Beenden des **Audit**-Skripts mit 0 den Neustart-Countdown aus.
    </Tip>

    #### Liftoff-Einstellungen

    Erweitern Sie unten im Custom Script die **Liftoff-Einstellungen**. Dort finden Sie **Dieses Library Item verarbeiten**. Diese Einstellung legt fest, wann das Skript relativ zu [Iru Liftoff](/de/endpoint/library/library-items-profiles/configure-the-liftoff-library-item) installiert wird. Sie gilt für Automated Device Enrollment und manuelle Registrierung.

    * **During Liftoff** (Standard): Das Custom Script wird während Liftoff verarbeitet, und Liftoff wird erst abgeschlossen, wenn es fertig ist. Es erscheint auf dem Install-Bildschirm, sofern nicht **In Liftoff ausblenden** ausgewählt ist.
      * **In Liftoff ausblenden**: Wenn ausgewählt, wird dieses Library Item weiterhin während Liftoff verarbeitet, aber nicht auf dem Install-Bildschirm angezeigt. Während der Verarbeitung zeigt Liftoff unten auf dem Bildschirm **Zusätzliche erforderliche Konfigurationen werden verarbeitet, bevor es weitergeht…** an. Diese Einstellung hat keinen Einfluss auf die Reihenfolge.
      * **Friendly name** (optional): Wenn angegeben, zeigt Liftoff diesen Namen anstelle des **Name** des Library Item an. Der Iru Agent ordnet Library Items beim Check-in weiterhin nach **Name**.
    * **Nach Liftoff**: Das Custom Script wird nicht während Liftoff verarbeitet und erscheint nicht auf dem Install-Bildschirm. Es wird bei einem späteren Agent-Check-in installiert.

    <Note>
      Wenn dieses Custom Script auch unter **Library Items während des Systemassistenten installieren** im [Automated Device Enrollment Library Item](/de/endpoint/enrollment/apple/configuring-apple-enrollment#install-library-items-during-setup-assistant) enthalten ist, wird es weiterhin während des Setup-Assistenten installiert. **Dieses Library Item verarbeiten** ändert diese Installation nicht.
    </Note>

    ### Ein Custom Script Library Item hinzufügen

    Um dieses Library Item zu Ihrer Iru Endpoint Library hinzuzufügen, folgen Sie den im Artikel [Library-Übersicht](/de/endpoint/library/library-items-profiles/library-overview) beschriebenen Schritten.

    <Steps>
      <Step title="Library Item benennen">
        Geben Sie dem neuen Custom Script Library Item einen **Name**.
      </Step>

      <Step title="Blueprints zuweisen">
        Weisen Sie es den gewünschten [Blueprints](/de/endpoint/getting-started/blueprints-and-library/configuring-blueprints) zu.
      </Step>

      <Step title="Ausführungshäufigkeit auswählen">
        Wählen Sie eine **Ausführungshäufigkeit** aus.
      </Step>

      <Step title="Self Service konfigurieren (optional)">
        Stellen Sie das Skript optional in **Self Service** zur Verfügung.
      </Step>

      <Step title="Audit-Skript hinzufügen">
        Fügen Sie Ihr Skript in das Feld **Überwachungsskript** ein.
      </Step>

      <Step title="Korrekturskript hinzufügen (optional)">
        Konfigurieren Sie optional ein **Remediation Script** und fügen Sie es ein.
      </Step>

      <Step title="Neustartoption konfigurieren (optional)">
        Aktivieren Sie bei Bedarf das Kontrollkästchen **Nach erfolgreicher Ausführung neu starten**.
      </Step>

      <Step title="Liftoff-Einstellungen konfigurieren (optional)">
        Erweitern Sie **Liftoff-Einstellungen**. **Dieses Library Item verarbeiten** ist standardmäßig auf **During Liftoff** eingestellt. Um das Skript nach Abschluss von Liftoff zu installieren, wählen Sie **Nach Liftoff**. Siehe [Liftoff-Einstellungen](#liftoff-settings).
      </Step>

      <Step title="Konfiguration speichern">
        Wählen Sie **Speichern**.
      </Step>
    </Steps>

    ### Verwandte Artikel

    <CardGroup cols={2}>
      <Card title="Library-Übersicht" icon="books" href="/de/endpoint/library/library-items-profiles/library-overview">
        Library Items kuratieren, erstellen und verwalten und zu Blueprints hinzufügen
      </Card>

      <Card title="Blueprints konfigurieren" icon="cog" href="/de/endpoint/getting-started/blueprints-and-library/configuring-blueprints">
        Geräte-Blueprints für die Richtlinienverwaltung erstellen und konfigurieren
      </Card>

      <Card title="Homebrew mit einem Custom Script bereitstellen" icon="apple" href="/de/endpoint/library/deployment-guides/apple/deploy-homebrew-using-a-custom-script">
        Homebrew mit einem benutzerdefinierten Skript auf Mac-Computern bereitstellen
      </Card>

      <Card title="Globale Variablen" icon="code" href="/de/endpoint/library/library-items-profiles/global-variables">
        Erfahren Sie, wie Sie globale Variablen in Iru Endpoint verwenden, um Geräte- und Benutzerinformationen dynamisch in Profile, Skripte und Konfigurationseinstellungen einzufügen.
      </Card>

      <Card title="Globale Warnungen" icon="bell" href="/de/endpoint/devices/global-alerts">
        Konfigurieren, wie Iru Endpoint Warnungen anzeigt, wenn Custom Scripts oder andere Library Items Probleme melden
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Windows">
    ### Windows Custom Script

    Mit dem Library Item **Windows custom script** können Sie PowerShell-Skripte auf verwalteten Windows-Computern ausführen. Sie können dieses Element verwenden, um den Gerätestatus zu prüfen, Konfigurationen durch Korrektur durchzusetzen oder administrative Aufgaben auszuführen, die nicht von integrierten Windows-Profilen abgedeckt werden.

    Windows Custom Scripts unterstützen ein Audit- und Korrekturmodell, mit dem nicht konforme Zustände erkannt und automatisch korrigiert werden können.

    ### Ein Windows Custom Script Library Item erstellen

    <Steps>
      <Step title="Zur Library navigieren">
        Navigieren Sie zu **Library**.
      </Step>

      <Step title="Library Item hinzufügen">
        Wählen Sie **Library Item hinzufügen**.
      </Step>

      <Step title="Windows Custom Script auswählen">
        Suchen Sie nach **Windows Custom Script** und wählen Sie es aus.
      </Step>

      <Step title="Namen eingeben">
        Geben Sie einen aussagekräftigen **Name** ein.
      </Step>

      <Step title="Status bestätigen">
        Bestätigen Sie, dass der Status auf **Aktiv** gesetzt ist.
      </Step>

      <Step title="Blueprints zuweisen">
        Weisen Sie das Library Item einem oder mehreren **Blueprints** zu.
      </Step>
    </Steps>

    ### Skriptdetails

    Der Abschnitt **Script details** definiert Einstellungen für Audit- und Korrekturskripte.

    #### Audit-Skript

    Das **Audit script** ermittelt, ob sich das Gerät im gewünschten Zustand befindet.

    Sie können das Audit-Skript über eine der folgenden Optionen bereitstellen:

    * **Signiertes Skript hochladen**
      * Laden Sie eine signierte PowerShell-Datei `.ps1` hoch.
    * **Skript manuell eingeben**
      * Fügen Sie PowerShell-Code direkt in den Editor ein oder bearbeiten Sie ihn dort.

    <Note>
      Das Audit-Skript sollte mit einem Exit-Code ungleich null beendet werden, wenn das Gerät nicht konform ist. Ein Exit-Code von null zeigt Konformität an.
    </Note>

    #### Befehlszeilenparameter (optional)

    Über das Feld **Command line parameters** können Sie den Audit- und Korrekturskripten zur Laufzeit Argumente übergeben.

    * Verwenden Sie die Standard-Parametersyntax von PowerShell.
    * Parameter werden bei der Ausführung des Skripts angehängt.

    Beispiel: `-Mode Full -ConfigPath "C:\Config.json"`

    <Tip>
      Dies ist nützlich, um Skripte wiederverwendbar zu machen, ohne Werte fest zu codieren.
    </Tip>

    #### Korrekturskript (optional)

    Wählen Sie **Add remediation script**, um eine Korrekturaktion zu konfigurieren.

    * Das Korrekturskript wird nur ausgeführt, wenn das Audit-Skript Nichtkonformität meldet.
    * Sie können ein signiertes Skript hochladen oder die Korrekturlogik manuell eingeben.
    * Verwenden Sie Korrekturskripte, um Konfigurationsabweichungen zu korrigieren oder Einstellungen durchzusetzen.

    <Note>
      Das Korrekturskript sollte erfolgreich beendet werden, nachdem das Problem behoben wurde.
    </Note>

    #### Ausführen in

    Wählen Sie mit **Execute in** die PowerShell-Umgebung aus, in der die Skripte ausgeführt werden:

    * **64 Bit**
    * **32 Bit**

    **64 bit** führt das Skript in der standardmäßigen 64-Bit-PowerShell-Umgebung aus und wird für die meisten Windows-Computer empfohlen.

    <Note>
      Verwenden Sie 32 bit nur, wenn das Skript oder seine Abhängigkeiten WOW64-Kompatibilität erfordern.
    </Note>

    ### Zuweisung und Ausführung

    Nach dem Speichern des Library Item:

    1. Wählen Sie **Speichern**.
    2. Weisen Sie es mit **+ Assign** einem oder mehreren **Blueprints** zu.

    Skripte werden einmal pro Gerät ausgeführt.

    ### Best Practices

    * Signieren Sie PowerShell-Skripte nach Möglichkeit vor dem Hochladen.
    * Trennen Sie die Erkennungslogik (Audit) von der Durchsetzungslogik (Korrektur).
    * Testen Sie Skripte auf Nicht-Produktionsgeräten, bevor Sie sie breit bereitstellen.

    ### Verwandte Artikel

    <CardGroup cols={2}>
      <Card title="Microsoft PowerShell-Dokumentation" icon="book" href="https://learn.microsoft.com/powershell/">
        Offizielle PowerShell-Dokumentation von Microsoft
      </Card>

      <Card title="Alles über Ausnahmen (PowerShell)" icon="book" href="https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-exceptions">
        Ausnahmebehandlung in PowerShell
      </Card>

      <Card title="Globale Warnungen" icon="bell" href="/de/endpoint/devices/global-alerts">
        Konfigurieren, wie Iru Endpoint Warnungen anzeigt, wenn Windows Custom Scripts oder andere Library Items Probleme melden
      </Card>
    </CardGroup>
  </Tab>
</Tabs>
