Using Set-Service
, I'm able to change the StartType
of my services between the accepted values of Boot, System, Automatic, Manual, Disabled
. Using services.msc
, I'm able to set some services to startup with a Priority of Automatic (Delayed Start). However, Get-Service
still reports these delayed-start services as StartType : Automatic
, and Set-Service
errors out when attempting to set these values.
Am I able to set this property via powershell? Or am I limited to the UI or GPO?
Нет прямого пути в PowerShell, просто используйте sc
sc.exe config NameOfTheService start= delayed-auto
в старых версиях Windows, вам нужен пробел после знака равенства, это больше не требуется, но это по-прежнему работает.
Вы также можете изменить ключи реестра:
HKLM\SYSTEM\CurrentControlSet\Services\NameOfTheService\Start = 2
HKLM\SYSTEM\CurrentControlSet\Services\NameOfTheService\DelayedAutostart = 1
Нет простого способа сделать это с помощью командлетов PowerShell. На мой взгляд, проще всего использовать sc.exe. Вот один из способов сделать это:
$myArgs = 'config "{0}" start=delayed-auto' -f 'TheServiceName'
Start-Process -FilePath sc.exe -ArgumentList $myArgs
PowerShell 6.0 добавила параметр StartType в значение Automatic - Delayed в командлете Set-Service
например: Set-Service -Name "Testservice" –StartupType "AutomaticDelayedStart"
Загвоздка в том, чтобы использовать "StartupType" вместо "StartType" при поиске "AutomaticDelayedStart", который появился в PowerShell 6.
После проб, ошибок и ошибок , это сработало для меня:
Get-Service | Where-Object {$_.StartupType -eq "AutomaticDelayedStart"} | Sort-Object status