Edit

Share via


Manage System Insights capabilities in Windows Admin Center

System Insights capabilities can be managed and configured to meet your deployment needs. This article explains how to adjust settings for each capability using PowerShell or Windows Admin Center, with step-by-step examples and screenshots.

View capabilities

You can list all of the available capabilities using the Get-InsightsCapability cmdlet:

  1. Open PowerShell. Enter the following command:
Get-InsightsCapability

Screenshot of using the Get-InsightsCapability cmdlet in PowerShell.

Enable and disable a capability

Each capability can be enabled or disabled. Disabling a capability prevents that capability from being invoked, and for non-default capabilities, disabling a capability stops all data collection for that capability. By default, all capabilities are enabled, and you can check the state of a capability before changing it.

To enable a capability, use the Enable-InsightsCapability cmdlet:

  1. Open PowerShell, and enter the following command replacing the name of the capability with the capability of your choice.

    Enable-InsightsCapability -Name "CPU capacity forecasting"
    

To disable a capability, use the Disable-InsightsCapability cmdlet:

  1. Open PowerShell, and enter the following command replacing the name of the capability with the capability of your choice.

    Disable-InsightsCapability -Name "Networking capacity forecasting"
    
  2. You're prompted to confirm the capability you're disabling.

    Screenshot of using the Disable-InsightsCapability cmdlet in PowerShell.

Invoke a capability

Invoking a capability immediately runs the capability to retrieve a prediction, and administrators can invoke a capability any time in Windows Admin Center, or by using the Invoke-InsightsCapability cmdlet. To make sure invoking a capability doesn't conflict with critical operations on your machine, consider scheduling predictions during off-business hours.

  1. Open PowerShell, and enter the following command replacing the name of the capability with the capability of your choice.

    Invoke-InsightsCapability -Name "CPU capacity forecasting"
    
  2. Confirm that you want to invoke the capability.

    Screenshot of using the Invoke-InsightsCapability cmdlet in PowerShell.

Retrieve capability results

Once a capability is invoked, the most recent results are visible using Get-InsightsCapability or Get-InsightsCapabilityResult. These cmdlets output the most recent Status and Status Description of each capability, which describe the result of each prediction. The Status and Status Description fields are further described in the understanding capabilities document.

Additionally, you can use the Get-InsightsCapabilityResult cmdlet to view the last 30 prediction results and to retrieve the data associated with the prediction:

# Specify the History parameter to see the last 30 prediction results.
Get-InsightsCapabilityResult -Name "CPU capacity forecasting" -History

# Use the Output field to locate and then show the results of "CPU capacity forecasting."
# Specify the encoding as UTF8, so that Get-Content correctly parses non-English characters.
$Output = Get-Content (Get-InsightsCapabilityResult -Name "CPU capacity forecasting").Output -Encoding UTF8 | ConvertFrom-Json
$Output.ForecastingResults

Use the event log to retrieve capability results

System Insights logs an event each time a capability finishes a prediction. These events are visible in the Microsoft-Windows-System-Insights/Admin channel, and System Insights publishes a different event ID for each status:

Prediction status Event ID
Ok 151
Warning 148
Critical 150
Error 149
None 132

Use Azure Monitor or System Center Operations Manager to aggregate these events and see prediction results across a group of machines.

Set a capability schedule

In addition to on-demand predictions, you can configure periodic predictions for each capability so that the specified capability is automatically invoked on a predefined schedule. Each default capability is scheduled to run every day at 3am. You can, however, create custom schedules for each capability, and System Insights supports a variety of schedule types.

Use the Get-InsightsCapabilitySchedule cmdlet to see capability schedules. Use the pipeline | in PowerShell to see information for all capabilities returned by the Get-InsightsCapability cmdlet.

Get-InsightsCapability | Get-InsightsCapabilitySchedule

Periodic predictions are enabled by default though they can be disabled at any time using the Enable-InsightsCapabilitySchedule and Disable-InsightsCapabilitySchedule cmdlets:

Enable-InsightsCapabilitySchedule -Name "Total storage consumption forecasting"
Disable-InsightsCapabilitySchedule -Name "Volume consumption forecasting"

You can create custom schedules for each capability using the Set-InsightsCapabilitySchedule cmdlet:

Set-InsightsCapabilitySchedule -Name "CPU capacity forecasting" -Daily -DaysInterval 2 -At 4:00PM
Set-InsightsCapabilitySchedule -Name "Networking capacity forecasting" -Daily -DaysOfWeek Saturday, Sunday -At 2:30AM
Set-InsightsCapabilitySchedule -Name "Total storage consumption forecasting" -Hourly -HoursInterval 2 -DaysOfWeek Monday, Wednesday, Friday
Set-InsightsCapabilitySchedule -Name "Volume consumption forecasting" -Minute -MinutesInterval 30

Because the default capabilities analyze daily data, it's recommended to use daily schedules for these capabilities. Learn more about the default capabilities.

Create remediation actions

System Insights enables you to kick off custom remediation scripts based on the result of a capability. For each capability, you can configure a custom PowerShell script for each prediction status, allowing administrators to take corrective action automatically, rather than requiring manual intervention.

Sample remediation actions include running disk cleanup, extending a volume, running deduplication, live migrating VMs, and setting up Azure File Sync.

You can see the actions for each capability using the Get-InsightsCapabilityAction cmdlet:

Get-InsightsCapability | Get-InsightsCapabilityAction

You can create new actions or delete existing actions using the Set-InsightsCapabilityAction and Remove-InsightsCapabilityAction cmdlets. Each action is run using credentials that are specified in the ActionCredential parameter.

$Cred = Get-Credential
Set-InsightsCapabilityAction -Name "CPU capacity forecasting" -Type Warning -Action "C:\Users\Public\WarningScript.ps1" -ActionCredential $Cred
Set-InsightsCapabilityAction -Name "CPU capacity forecasting" -Type Critical -Action "C:\Users\Public\CriticalScript.ps1" -ActionCredential $Cred

Remove-InsightsCapabilityAction -Name "CPU capacity forecasting" -Type Warning

To learn more about System Insights, use the following resources: