Automation
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




