-1

我正在编写一些 powershell 代码来并行启动许多内部开发的 Windows 服务。这些服务不依赖于其他服务,我在循环中运行 Start-Service 命令,每个 Start-Service 调用产生一个 PSJob。

但是,在查看了服务控制管理器生成的事件之后,似乎任何时候都只有一个服务处于启动状态。

完全承认我可能弄乱了 powershell 代码,但我想我会检查一下这里没有基本的 Windows (Server 2003) 限制(即一次只启动一项服务)。

Daniel

cls
$Services = $('Service1', 'Service2', 'Service3')
foreach($Service in $Services) {

Start-Job -ScriptBlock {
Param($ServiceName)
启动服务 $ServiceName
} -ArgumentList $Service

}

Get-Job | Wait-Job | Receive-Job<br/>
4

1 回答 1

0

有一个匿名联系人帮我查看 Windows 源代码,答案是任何时候都可能只启动一项服务。这是由 SCM 在启动服务之前对服务数据库进行全局锁定来强制执行的。

于 2013-06-20T04:43:21.883 回答