Obter o estado do serviço a partir do servidor remoto usando o powershell

Como obter o estado de serviço de um computador remoto que precisa de um nome de utilizador e senha para fazer login?

estou a tentar encontrar uma solução usando o seguinte código:

$serviceStatus = get-service -ComputerName $machineName -Name $service

a sintaxe por omissão para o comando get-service é:

Parameter Set: Default
Get-Service [[-Name] <String[]> ] [-ComputerName <String[]> ] [-DependentServices] [-Exclude <String[]> ] [-Include <String[]> ] [-RequiredServices] [ <CommonParameters>]

Parameter Set: DisplayName
Get-Service -DisplayName <String[]> [-ComputerName <String[]> ] [-DependentServices] [-Exclude <String[]> ] [-Include <String[]> ] [-RequiredServices] [ <CommonParameters>]

Parameter Set: InputObject
Get-Service [-ComputerName <String[]> ] [-DependentServices] [-Exclude <String[]> ] [-Include <String[]> ] [-InputObject <ServiceController[]> ] [-RequiredServices] [ <CommonParameters>]

Isto não tem uma opção para o nome de utilizador e senha.

Author: debal, 2014-05-02

2 answers

Tanto quanto sei, o Get-Service não aceita um parâmetro credencial. No entanto, pode fazê-lo através da WMI.:

$cred = get-Credential -credential <your domain user here>
Get-WMIObject Win32_Service -computer $computer -credential $cred

Actualizar após o comentário:

Você pode salvar credenciais como uma faixa de segurança em um arquivo, e então recarregá-lo para criar manualmente uma credencial sem ter um prompt. Ver informação aqui.

 8
Author: David Brabant, 2014-05-02 06:08:52

Isto também funciona:

net use \\server\c$ $password /USER:$username
$service = Get-Service $serviceName -ComputerName $server

Note que a senha não deve estar num texto seguro.

 4
Author: Morten Holmgaard, 2016-05-10 11:52:40