Как перенаправить или скрыть вывод системных параметров при удаленном запуске команды stopservice в powershell - PullRequest
0 голосов
/ 03 марта 2019

Поэтому я использую объекты WMI для удаленного перезапуска службы, которая работает, но вывод помещает в окно загрузку параметров, что полезно для отладки, но не для конечного пользователя.

Я отправляю следующее

 Try {
       Write-host "Connecting to remote computer"
     $service = Get-WmiObject -Class Win32_Service -ComputerName $till -Credential $cred -Filter "Name='$servname'"
       Write-host "Stopping service"
       $service.stopservice()
       Write-host "Waiting for service to stop"
       Start-Sleep -Seconds 10
       Write-host "Starting service"
       $service.startservice()
}
Catch {
        Write-host "There was an error processing your request" -fore RED;
}

Вывод, который я получаю:

Connecting to remote computer
Stopping service


__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     : 
__DYNASTY        : __PARAMETERS
__RELPATH        : 
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         : 
__NAMESPACE      : 
__PATH           : 
ReturnValue      : 0
PSComputerName   : 

Waiting for service to stop
Starting service
__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     : 
__DYNASTY        : __PARAMETERS
__RELPATH        : 
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         : 
__NAMESPACE      : 
__PATH           : 
ReturnValue      : 0
PSComputerName   : 

Я считаю ReturnValue полезным для этого сценария и ничего больше.

Как можноЯ скрываю этот вывод и в то же время использую ReturnValue, чтобы передать его в оператор Switch

1 Ответ

0 голосов
/ 03 марта 2019

решение состоит в том, чтобы назначить вызов $ Var.[ ухмылка ], которая даст вам доступ к свойству .ReturnValue.вот демо ...

#requires -RunAsAdministrator

$Service = Get-WmiObject -Class Win32_Service -Filter "Name = 'Spooler'"
$Service.State
''
$StopResponse = $Service.StopService()
$StopResponse.ReturnValue
(Get-WmiObject -Class Win32_Service -Filter "Name = 'Spooler'").State
''
$StartResponse = $Service.StartService()
$StartResponse.ReturnValue
(Get-WmiObject -Class Win32_Service -Filter "Name = 'Spooler'").State

вывод ...

Running

0
Stopped

0
Running
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...