مرجع واجهة برمجة تطبيقات REST لمدير العمليات
يوفر System Center Operations Manager مراقبة بنية أساسية مرنة وبتكلفة مناسبة تساعد على ضمان توفر الأداء المتوقع وكذلك توفر التطبيقات الحرجة وخدمات البنية الأساسية. يوفر Operations Manager مراقبة شاملة لمركز البيانات الخاص بك من خلال التحقق من صحة جميع الكائنات المراقبة وأدائها وتوافرها في بيئتك، والمساعدة في تحديد المشكلات للحل السريع. للحصول على نظرة عامة أكثر تفصيلا، راجع صفحة منتج System Center Operations Manager.
ملاحظة
يدعم Operations Manager 2019 UR1 الرموز المميزة لتزوير طلبات المواقع المشتركة (CSRF) لمنع هجمات CSRF. إذا كنت تستخدم Operations Manager 2019 UR1، يجب تهيئة رمز CSRF المميز. لا تعمل برامج HTML النصية إذا لم تتم تهيئة رموز CSRF المميزة.
الإجراء المطلوب، ينطبق على Operations Manager 2019 UR1.
- في رأس HTML للوحة المعلومات، أضف التعليمات البرمجية التالية:
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"]);
}
}
- في الدالة onload ، قم بتغيير قيمة العنوان إلى requestHeaders.
مثال:
#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