$results | Select-Object Name, State, RestartNeeded Or real-time progress:
Add-WindowsCapability does accept pipeline input by property name from Get-WindowsCapability directly. $results | Select-Object Name
The command you've shown is close, but has a syntax issue. $results | Select-Object Name
Get-WindowsCapability -Name RSAT* -Online | ForEach-Object Add-WindowsCapability -Online -Name $_.Name $results | Select-Object Name