仅在使用 sc.exe 查询时返回服务状态

仅在使用 sc.exe 查询时返回服务状态

当使用以下命令将有关服务的信息返回到文件时:

sc.exe query MyService >> MyFileLocation\MyFile.txt

我在文件中得到以下信息:

SERVICE_NAME: MyService 
        TYPE               : 10  WIN32_OWN_PROCESS  
        STATE              : 4  RUNNING 
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

但我只需要状态。我已检查了文档中的属性:

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/sc-query

但我找不到任何可以让我返回的东西仅有的国家。可以这样做吗?如果可以,该怎么做?提前谢谢。

答案1

您可以尝试以下方法:

sc.exe query MyService | select-string state >> MyFileLocation\MyFile.txt

结果应该是:

STATE              : 4  RUNNING

使用“纯” powershell:

Get-Service MyService | select Status

答案2

使用 sc.exe 是 cmd 方式。

由于您使用的是 PowerShell,建议使用 Powershell 函数 Get-Service。

这允许您使用以下代码:

(Get-Service MyService).status

其结果是:

Running

要将其直接打印到文件,您可以使用:

(Get-Service MyService).status | out-file "MyLocation\MyFile.txt" -append

鉴于我们使用 powershell,你甚至可以执行以下操作:

$status = (Get-Service MyService).status
"The status of MyService is $status" | out-file -path "MyLocation\MyFile.txt" -append

相关内容