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