Windows Features Inventory
For every managed Windows machine, Athena inventories the optional features and server roles that are turned on — for example Hyper-V, Internet Information Services (IIS), SMB features, the Windows Subsystem for Linux, .NET Framework features, and Active Directory / DNS / DHCP server roles. This gives you a fleet-wide answer to "which of my servers has this role enabled?" from the console instead of logging on to each device or running DISM by hand.
This is read-only discovery. Athena reports the features each machine already has enabled; it does not enable, disable, or reconfigure Windows features. To change a feature or role on an endpoint, run a remote command or a deployment that performs the change on the machine.
What's collected#
For each machine, Athena records the Windows optional features and roles that are currently enabled. Features that are available but not turned on are not listed — the inventory is a list of what is on, so a short list means few extra roles are enabled. Each entry carries the following:
| Field | Meaning |
|---|---|
| Feature Name | The system name of the feature as Windows identifies it — for example Microsoft-Hyper-V, IIS-WebServerRole, or NetFx4-AdvSrvs. This is the stable name you would use in a script to enable or check the feature. |
| Display Name | The human-readable caption for the feature, matching the wording shown in the Windows "Turn Windows features on or off" dialog. |
| Install State | The state of the feature. Because the inventory lists only features that are turned on, this reads Enabled. |
Role auditing across the fleet. Because the record lists enabled roles by machine, it is a quick way to answer audit questions such as "which servers still have the legacy SMB 1.0 feature enabled?", "which machines are running Hyper-V?", or "where is IIS installed?" — without touching each host.
Platform coverage#
Windows features are a Windows-only inventory category — they describe the optional features and roles that the Windows component store exposes. Linux endpoints do not have an equivalent concept, so this section is empty for them. For the software actually installed on a machine (Windows or Linux), see the software inventory described in Inventory.
Where to see it#
Open a machine from the Agents list, then in the agent detail view's left-hand navigation choose Windows Features. The section lists every enabled feature in a table with three columns — Feature Name, Display Name, and Install State.
The section only appears for machines that have reported feature data. Like the rest of inventory, the values reflect the machine's last successful collection on its regular reporting cadence rather than a live query at open time. For the wider inventory surface and refresh behaviour, see Inventory.
Scope note. Enabled Windows features are a per-machine inventory field, viewed on a machine's detail view. If you need a fleet-wide rule — for example "flag any server where a specific feature is enabled" — evaluate it on the endpoint with a compliance rule or a custom scan and surface the answer through the scan results, which you can then use in collections, tagging, and reports like any other collected field.
Reading it over the API#
Enabled Windows features are exposed both as a dedicated inventory endpoint and as part of an agent's full inventory document. To fetch just the features for one machine, call the features endpoint:
# Enabled Windows features for one agent
$headers = @{ Authorization = "Bearer $token" }
$features = Invoke-RestMethod `
-Uri "https://athena.example.com:8443/api/agents/$agentId/inventory/features" `
-Headers $headers `
-SkipCertificateCheck
$features.data |
Select-Object featureName, displayName, installState
# Is Hyper-V enabled on this machine?
[bool]($features.data | Where-Object featureName -like '*Hyper-V*')
The features endpoint is GET /api/agents/{agentId}/inventory/features. Each element
carries featureName, displayName, and installState. Reading
inventory requires the Helpdesk role or higher. The endpoint returns
404 when the machine is unknown or has not yet reported feature data.
Windows features are also part of the full inventory document. Fetch the complete inventory and
read the windowsFeatures array, or use the PowerShell module:
# Via the full inventory document
$inv = Invoke-RestMethod `
-Uri "https://athena.example.com:8443/api/agents/$agentId/inventory" `
-Headers $headers -SkipCertificateCheck
$inv.data.windowsFeatures | Select-Object featureName, displayName
# Via the PowerShell module
Connect-Athena -Server "https://athena.example.com:8443"
(Get-AthenaAgentInventory -AgentId $agentId).WindowsFeatures
The windowsFeatures array is empty or absent when a machine has not yet reported this
data or has no optional features enabled. For the full inventory surface and the module used to
script against the server, see Inventory and the
PowerShell Module reference.