Freigeben über


Operations Manager-REST-API-Referenz

System Center Operations Manager ermöglicht eine flexible und kosteneffiziente Infrastrukturüberwachung, sodass Sie eine vorhersagbare Leistung und Verfügbarkeit für unternehmenskritische Anwendungen und Infrastrukturdienste sicherstellen können. Operations Manager bietet eine umfassende Überwachung für Ihr Rechenzentrum, indem die Integrität, Leistung und Verfügbarkeit aller überwachten Objekte in Ihrer Umgebung überprüft und Probleme zur schnellen Lösung identifiziert werden können. Eine ausführlichere Übersicht finden Sie auf der Produktseite für System Center Operations Manager.

Hinweis

Operations Manager 2019 UR1 unterstützt CSRF-Token (Cross-Site Request Forgery, websiteübergreifende Anforderungsfälschung), um CSRF-Angriffe zu verhindern. Wenn Sie Operations Manager 2019 UR1 verwenden, müssen Sie das CSRF-Token initialisieren. HTML-Skripts funktionieren nicht, wenn die CSRF-Token nicht initialisiert sind.

Initialisieren des CSRF-Tokens

Erforderliche Aktion, die für Operations Manager 2019 UR1 gilt.

  1. Fügen Sie im HTML-Header des Dashboards den folgenden Code hinzu:
            Accept: 'q=0.8;application/json;q=0.9',
            "Content-Type": "application/json"
        };
        InitializeCSRFToken();
        function InitializeCSRFToken() {
            var documentcookies = document.cookie.split('; ');
            var result = {};
            for (var i = 0; i < documentcookies.length; i++) {
                var cur = documentcookies[i].split('=');
                result[cur[0]] = cur[1];
            }
            if (result["SCOM-CSRF-TOKEN"] && result["SCOM-CSRF-TOKEN"] != null) {
                requestHeaders["SCOM-CSRF-TOKEN"] = decodeURIComponent(result["SCOM-CSRF-TOKEN"]);
            }
        }
  1. Ändern Sie in der onload-Funktion den Headerwert in requestHeaders.

Beispiel:

Initialisieren des CSRF-Tokenbeispiels

PowerShell-Beispiel für die Operations Manager-REST-API

#Set Headers for the request
$userName ="domain\username";
$password ="Password";
$AuthenticationMode= "Network"
$scomHeaders = New-Object “System.Collections.Generic.Dictionary[[String],[String]]”
$scomHeaders.Add('Content-Type','application/json; charset=utf-8')
$bodyraw = "($AuthenticationMode):$($userName):$($password)”
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($bodyraw)
$EncodedText =[Convert]::ToBase64String($Bytes)
$jsonbody = $EncodedText | ConvertTo-Json

$uriBase = 'http://<scomserver>/OperationsManager'

#Authenticate
$auth = Invoke-WebRequest -Method POST -Uri $uriBase/authenticate -Headers $scomheaders -body $jsonbody -UseDefaultCredentials -SessionVariable $websession 
#Include CSRF Token
$csrfTocken = $websession.Cookies.GetCookies($uriBase) | ? { $_.Name -eq 'SCOM-CSRF-TOKEN' }
$scomHeaders.Add('SCOM-CSRF-TOKEN', [System.Web.HttpUtility]::UrlDecode($csrfTocken.Value))

#Examples to Invoke the required SCOM API

#Data/alertDescription/{alertid}
$alertid="6A88FBC1-0EDC-4173-9BB1-30FFEC296672"
$uri = "$uriBase/data/alertDetails"
$Response = Invoke-WebRequest -Uri "$uriBase/data/alertDetails/$alertid" -Headers $scomheaders -Method Get -WebSession $websession
$Response.Content | Convertto-json



#Criteria: Enter the displayname of the SCOM object
$Criteria = "DisplayName LIKE '%SQL%'"
#Convert our criteria to JSON format
$JSONBody = $Criteria | ConvertTo-Json
$Response = Invoke-WebRequest -Uri "$uriBase/data/class/monitors" -Method Post -Body $JSONBody -WebSession $WebSession
$Response.Content | Convertto-json


#Data Request in JSON Format
$dashboardbody='
{
  "refreshing": false,
  "Name": "TestAPIDashboard",
  "path": "35b6eba3-6202-8738-a47f-16acf476230f"
}'
$response = Invoke-WebRequest -Uri "$uriBase/monitoring/dashboard" -Headers $scomheaders -Method POST -Body $dashboardbody -ContentType "application/json" -UseDefaultCredentials -WebSession $websession