Back to posts

operationsmanager

Update: SCOM web API

Big updates:

I have made a lot of changes to the SCOM web API. As you can see from the picture above. Maintenance scheduling is added, which means you can create a new maintenance schedule in SCOM 2016. To the computer endpoints I have added the a possibility to get detailed information. This will list all related object to the server. Logical disks, network cards etc. These are the API endpoints available at the moment:

Agents

Route Description

[GET] API/Agents Gets all agents

[GET] API/Agents/{id} Get a single agent

Alerts

Route Description

[GET] API/Alerts Gets all open alerts

[GET] API/Alert/{id} Get a single alert

[PUT] API/Alert Update the specified alert with resolution state, TicketId

[GET] API/Alert/{ComputerName} Get all alert from specific computer, use IncClosed=true to include open and closed alerts

Computer

Route Description

[GET] API/Computer/Windows Get all windows computers wit basic properties

[GET] API/Computer/Windows/{ComputerName} Get A single windows computers with basic properties

[GET] API/Computer/Windows/{ComputerName}/Detailed Get A single windows computers with hosted child objects

—— ——

[GET] API/Computer/Linux Get all Linux computers wit basic properties

[GET] API/Computer/Linux/{ComputerName} Get A single Linux computer with basic properties

[GET] API/Computer/Linux/{ComputerName}/Detailed Get A single Linux computers with hosted child objects

Maintenance

Route Description

[POST] API/ComputerMaintenance Put the specific computer object and all child in maintenance mode

[POST] API/ObjectMaintenance Put the specific monitoring object and all child in maintenance mode

[POST] API/MaintenanceSchedule Create a new maintenance schedule. SCOM 2016 ONLY

Object

Route Description

[GET] API/MonitoringObject/{id} Get a monitoring object and all child object

Examples

Create a new maintenance schedule by sending a post to /API/MaintenanceSchedule with a body including object id, start date and end date in UTC, optionally a comment. #CREATE A MAINTENANCE SCHEDULE WITH TWO OBJECTS. Time in UTC

$body = @” { “scheduleName”: “new maintenance schedule”, “id”: “a43a5b09-5c32-8624-1427-73b8e1f05248”, “StartTime”: “2017-05-30T13:53:33.550Z”, “EndTime”: “2017-05-30T14:53:33.550Z”, “comment”: “TicketID” } ”@

Invoke-RestMethod -Uri ‘http://localhost:64049/API/MaintenanceSchedule’ -Method Post -Body $body -UseDefaultCredentials -ContentType ‘Application/json’ Get details/related object from a computer: Invoke-RestMethod -Uri ‘https://host/API/Computer/windows/computer.fqdn/Detailed’ -UseDefaultCredentials Which will return something like this. Notice the relatedObjectsCount and relatedObjects