[comment]: # translation:outdated

[comment]: # ({3a2a8d58-3a2a8d58})
# script.execute

[comment]: # ({/3a2a8d58-3a2a8d58})

[comment]: # ({ac5defee-60a9dbe3})
### Beschreibung

`object script.execute(object parameters)`

Mit dieser Methode kann ein Skript auf einem Host oder Ereignis ausgeführt werden. Ausgenommen sind Skripte vom Typ URL. Diese sind nicht ausführbar.

::: noteclassic
Diese Methode ist für Benutzer aller Typen verfügbar. Die Berechtigung,
die Methode aufzurufen, kann in den Einstellungen der Benutzerrolle entzogen werden. Weitere Informationen finden Sie unter [Benutzerrollen](/manual/web_interface/frontend_sections/users/user_roles).
:::

[comment]: # ({/ac5defee-60a9dbe3})

[comment]: # ({4a3ef91f-e4fa8ac7})
### Parameter

`(object)` Parameter, die die ID des auszuführenden Skripts sowie entweder
die ID des Hosts oder die ID des Ereignisses und den Wert manualinput enthalten.

|Parameter|[Type](/manual/api/reference_commentary#data-types)|Beschreibung|
|--|--|------|
|scriptid|ID|ID des auszuführenden [Skripts](/manual/api/reference/script/object#script).<br><br>[Parameterverhalten](/manual/api/reference_commentary#parameter-behavior):<br>- *erforderlich*|
|hostid|ID|ID des [Hosts](/manual/api/reference/host/object#host), auf dem das Skript ausgeführt wird.<br><br>[Parameterverhalten](/manual/api/reference_commentary#parameter-behavior):<br>- *erforderlich*, wenn `eventid` nicht gesetzt ist|
|eventid|ID|ID des [Ereignisses](/manual/api/reference/event/object#event), für das das Skript ausgeführt wird.<br><br>[Parameterverhalten](/manual/api/reference_commentary#parameter-behavior):<br>- *erforderlich*, wenn `hostid` nicht gesetzt ist|
|manualinput|string|Vom Benutzer bereitgestellter Wert, mit dem das Skript ausgeführt wird; ersetzt dabei <br>das Makro {MANUALINPUT}.|

[comment]: # ({/4a3ef91f-e4fa8ac7})

[comment]: # ({abb1babb-dde54e60})
### Rückgabewerte

`(object)` Gibt das Ergebnis der Skriptausführung zurück.

|Eigenschaft|[Type](/manual/api/reference_commentary#data-types)|Beschreibung|
|--|--|------|
|response|string|Gibt an, ob das Skript erfolgreich ausgeführt wurde.<br><br>Möglicher Wert – `success`.|
|value|string|Skriptausgabe.|
|debug|object|Enthält ein [debug](/manual/api/reference/script/object#debug)-Objekt, wenn ein webhook-Skript ausgeführt wird. Für andere Skripttypen enthält es ein leeres Objekt.|

[comment]: # ({/abb1babb-dde54e60})

[comment]: # ({b41637d2-b41637d2})
### Beispiele

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({89444531-03cb1cf3})
#### Ein webhook-Skript ausführen

Führen Sie ein webhook-Skript aus, das eine HTTP-Anfrage an einen externen Dienst sendet.

[Anfrage](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "script.execute",
    "params": {
        "scriptid": "4",
        "hostid": "30079"
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "value": "{\"status\":\"sent\",\"timestamp\":\"1611235391\"}",
        "debug": {
            "logs": [
                 {
                     "level": 3,
                     "ms": 480,
                     "message": "[Webhook Script] HTTP status: 200."
                 }
             ],
             "ms": 495
        }
    },
    "id": 1
}
```

[comment]: # ({/89444531-03cb1cf3})

[comment]: # ({fc7b2309-baebff97})
#### Ein benutzerdefiniertes Skript ausführen

Führen Sie ein „ping“-Skript auf einem Host aus.

[Anfrage](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "script.execute",
    "params": {
        "scriptid": "1",
        "hostid": "30079"
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "value": "PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.\n64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.074 ms\n64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.030 ms\n64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.030 ms\n\n--- 127.0.0.1 ping statistics ---\n3 packets transmitted, 3 received, 0% packet loss, time 1998ms\nrtt min/avg/max/mdev = 0.030/0.044/0.074/0.022 ms\n",
        "debug": []
    },
    "id": 1
}
```

[comment]: # ({/fc7b2309-baebff97})

[comment]: # ({7ff793a4-dae60a2d})
#### Ein benutzerdefiniertes Skript mit manueller Eingabe ausführen

Führen Sie ein „ping“-Skript mit dem Befehl „ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *)
false;; esac“ auf einem Host aus.

[Anfrage](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "script.execute",
    "params": {
        "scriptid": "7",
        "hostid": "30079",
        "manualinput": "2"
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "value": "PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.\n64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.051 ms\n64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.025 ms\n\n--- 127.0.0.1 ping statistics ---\n2 packets transmitted, 2 received, 0% packet loss, time 1021ms\nrtt min/avg/max/mdev = 0.025/0.038/0.051/0.013 ms\n",
        "debug": []
    },
    "id": 1
}
```

[comment]: # ({/7ff793a4-dae60a2d})

[comment]: # ({e7dc45a5-e7dc45a5})
### Quelle

CScript::execute() in *ui/include/classes/api/services/CScript.php*.

[comment]: # ({/e7dc45a5-e7dc45a5})
