单线程获取服务启动类型

时间:2015-01-26 23:07:02

标签: powershell command-line salt-stack

我写的是用盐和窗户做检查的衬垫......我认为它只是语法而且我对powershell来说很新,任何帮助都会很棒。

powershell -NoProfile "if ( Get-Service someCoolService -ErrorAction SilentlyContinue) -And if (someCoolService.StartUpType -ne "Disabled") { Write-Output "True" }

2 个答案:

答案 0 :(得分:2)

使用WMI:

powershell -NoProfile "&{![bool](Get-WmiObject Win32_Service -Filter \"Name='yourService' AND StartMode='Disabled'\")}"

假设您正在谈论SaltStack配置管理系统,您还应该能够run PowerShell code directly指定shell参数:

salt '*' cmd.run "![bool](Get-WmiObject Win32_Service -Filter \"Name='yourService' AND StartMode='Disabled'\"" shell='powershell'

答案 1 :(得分:0)

就像你说的那样,它的语法错误。如果您想自己修复它,我建议您下次打开一个PowerShell窗口,并在" powershell -Noprofile"之后执行所有操作。 - >因为如果您在PowerShell窗口中,则不需要此部分。 (要运行powershell,只需在命令提示符下键入powershell或从应用程序中打开PowerShell窗口。)

无论如何,让我帮你解决这个问题,同时你可以使用我之前提到的那些你以后被困的时间。

powershell -profile if(( Get-Service someCoolService -ErrorAction SilentlyContinue) -And (someCoolService.StartUpType -ne "Disabled")) { Write-Output "True" }