web-dev-qa-db-fra.com

Obtenir l'état du service à partir d'un serveur distant à l'aide de PowerShell

Comment obtenir l'état du service pour un ordinateur distant qui a besoin d'un nom d'utilisateur et d'un mot de passe pour se connecter?

J'essaie de trouver une solution en utilisant le code suivant:

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

La syntaxe par défaut pour le get-service la commande est:

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>]

Cela n'a pas d'option pour le nom d'utilisateur et le mot de passe.

8
debal

Pour autant que je sache, Get-Service n'accepte pas de paramètre d'identification . Cependant, vous pouvez le faire via WMI :

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

Mise à jour après commentaire:

Vous pouvez enregistrer les informations d'identification en tant que chaîne de sécurité dans un fichier, puis le recharger pour créer manuellement une information d'identification sans avoir d'invite. Voir les informations ici .

9
David Brabant

Cela fonctionne également:

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

Notez que le mot de passe ne doit pas être dans une chaîne sécurisée.

7
Morten Holmgaard