将服务 StartType 设置为自动 - 延迟

将服务 StartType 设置为自动 - 延迟

使用Set-Service,我能够StartType在可接受的 值之间更改服务的Boot, System, Automatic, Manual, Disabled。使用services.msc,我能够将某些服务设置为以 优先级启动Automatic (Delayed Start)。但是,在尝试设置这些值时,Get-Service仍然会将这些延迟启动的服务报告为StartType : Automatic,并出现错误。Set-Service

我可以通过 powershell 设置此属性吗?还是我只能使用 UI或 GPO

答案1

PowerShell 6.0 在 Set-Service cmdlet 中将 StartType 选项添加到 Automatic - Delayed

例如:Set-Service -Name“Testservice” –StartupType“AutomaticDelayedStart”

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/set-service?view=powershell-6

答案2

PowerShell 中没有直接方法,只需使用sc

sc.exe config NameOfTheService start= delayed-auto 

在旧版本的 Windows 中,等号后需要一个空格,现在似乎不再需要了,但它仍然有效。

您还可以更改注册表项:

HKLM\SYSTEM\CurrentControlSet\Services\NameOfTheService\Start = 2
HKLM\SYSTEM\CurrentControlSet\Services\NameOfTheService\DelayedAutostart = 1

答案3

使用 powershell cmdlet 无法简单地完成此操作。我认为最简单的方法是使用 sc.exe。以下是其中一种方法:

$myArgs = 'config "{0}" start=delayed-auto' -f 'TheServiceName'
Start-Process -FilePath sc.exe -ArgumentList $myArgs

答案4

要点是,当您搜索“AutomaticDelayedStart(PowerShell 6 中引入)”时,请使用“StartupType”而不是“StartType”。

经过反复尝试,我发现这个方法对我有用:

Get-Service | Where-Object {$_.StartupType -eq "AutomaticDelayedStart"} | Sort-Object status

相关内容