Automating the FEP Dashboard
Applies To: Forefront Endpoint Protection
You can use the Configuration Manager Windows Management Instrumentation (WMI) provider to automate retrieval of FEP dashboard information. The FEP dashboard displays important information about the security of your organization, such as the number of deployed clients, definition deployment status, number of client computers infected, and number of client computers with malware removed.
Each dashboard data set is represented by a Configuration Manager collection. The following example script demonstrates how to obtain a count of computers that belong to a specified collection.
Prerequisites
In order to create a script similar to the example in this topic, you must have the following prerequisite software:
- Windows PowerShell (either version 1.0 or 2.0)
The following table lists the Configuration Manager collections that are used to populate the data for the FEP dashboard. To retrieve the dashboard data via a script, you must specify the appropriate Configuration Manager collection in the script.
Dashboard Area | Collection Names |
---|---|
Deployment Status
|
Deployment Succeeded |
Out of Date |
|
Deployment Failed |
|
Deployment Pending |
|
Locally Removed |
|
Not Targeted |
|
Policy Distribution Status
|
Distribution Failed |
Distribution in Progress |
|
Policy Distributed |
|
Definition Status
|
Up to Date |
Up to 3 Days |
|
Up to 7 Days |
|
Older Than 1 Week |
|
Malware Activity Status
|
Infected |
Restart Required |
|
Full Scan Required |
|
Recent Activity |
|
Health Status
|
Protection Inactive |
Not Reporting |
|
Healthy |
The following example script retrieves dashboard data from the FEP database for the specified collection.
function GetDashboardInfo(
$ConfigMgrServer, # ConfigMgr WMI site provider to which to connect. e.g. MyServer
$SiteCode, # ConfigMgr site code. e.g. ABC
$CollectionName) # Collection name for which count of computers should be returned. e.g. Infected. Use the table above to determine the collection name to query.
{
$ConfigMgrNamespace = "root\sms\site_$SiteCode"
$ConfigMgrProviderPath = "\\" + (Join-Path $ConfigMgrServer $ConfigMgrNamespace)
# Get the SMS collection to query
$Collection = Get-WmiObject -class "SMS_Collection" -filter "Name='$CollectionName'" -namespace $ConfigMgrNamespace -computername $ConfigMgrServer
# Get the SMS_Collection class
$SmsCollectionClass = [WmiClass]($ConfigMgrProviderPath + ":SMS_Collection")
$count = $SmsCollectionClass.GetNumResults($Collection).Result
Write-Output "Count of computers in $CollectionName is $count"
return $count
}