1

我正在尝试获取 win32_service 的关联实例列表,然后根据它们是“依赖”还是“需要”win32_service 来分离这些实例。

例如,我可以获得 WAS 服务的关联列表:

$service = Get-CimInstance -Query "SELECT * FROM win32_service WHERE name='WAS'"
Get-CimAssociatedInstance -InputObject $service -Association "win32_dependentservice"

这使我能够获得与 WAS 相关的服务列表;但是,它没有说明它们是“先行”还是“从属”对象。

如果我使用 WQL,我可以看到对象是由先行键和从属键枚举的:

Get-CimInstance -Query "SELECT * FROM win32_dependentservice"

而且,我可以在使用“关联者”时指定密钥

Get-CimInstance -Query "Associators of {win32_service.name='WAS'} WHERE AssocClass=win32_dependentservice Role=dependent"

是否可以在 Get-CimAssociatedInstance 中指定“角色”?或者,我是否坚持使用 WQL 来确定服务是否依赖/先行?

编辑:我特别想知道是否可以使用 Cim cmdlet 获取此信息。我知道 Get-Service 可以获取信息,但这不是我在这里要问的。

4

1 回答 1

0

我会把它作为答案。我认为对您来说最好的解决方案是使用 Get-Service cmdlet。它为您提供您所请求的信息。用法和输出示例:

PS C:\windows\system32> Get-Service wwansvc|fl


Name                : wwansvc
DisplayName         : WWAN AutoConfig
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {wcmsvc, RpcSs, NdisUio}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

这表明没有任何东西依赖它,而是它依赖于 wcmsvc、RpcSs 和 NdisUio。

于 2014-11-05T02:34:26.307 回答