
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