Get-Service
возвращает System.ServiceProcess.ServiceController
объекты, которые не предоставляют эту информацию.Таким образом, вы должны использовать WMI для такого рода задач: Get-WmiObject Win32_Service
.Пример, который показывает требуемый StartMode
и форматирует вывод в виде панели управления Windows:
Get-WmiObject Win32_Service |
Format-Table -AutoSize @(
'Name'
'DisplayName'
@{ Expression = 'State'; Width = 9 }
@{ Expression = 'StartMode'; Width = 9 }
'StartName'
)
Вам интересны службы, которые работают автоматически, но не работают:
# get Auto that not Running:
Get-WmiObject Win32_Service |
Where-Object { $_.StartMode -eq 'Auto' -and $_.State -ne 'Running' } |
# process them; in this example we just show them:
Format-Table -AutoSize @(
'Name'
'DisplayName'
@{ Expression = 'State'; Width = 9 }
@{ Expression = 'StartMode'; Width = 9 }
'StartName'
)