1 votes

Powershell - Invoke-command ne lance pas msiexec.exe

Je veux installer le client TortoiseSVN sur un ensemble de serveurs en utilisant le Powershell distant. Les opérations de base fonctionnent, mais la commande ci-dessous ne fonctionnera pas en tant que commande à distance

Invoke-Command -ComputerName myserver -ScriptBlock {Start-Process "msiexec.exe" -ArgumentList "/i \\fileserver\install\subversionclients\TortoiseSVN-1.14.0.28885-x64-svn-1.14.0.msi  /passive /norestart /qn ADDLOCAL=ALL" -Wait}

En revanche, en vous connectant au serveur et en émettant la commande suivante

Start-Process "msiexec.exe" -ArgumentList "/i \\fileserver\install\subversionclients\TortoiseSVN-1.14.0.28885-x64-svn-1.14.0.msi  /passive /norestart /qn ADDLOCAL=ALL" -Wait`

... cela fonctionne. Je n'ai pas réussi à comprendre pourquoi - aucune erreur n'est affichée, et aucune valeur de retour non plus. Comme je l'ai compris, Invoke-command est élevé par défaut. Essayer d'ajouter -Verb RunAs ne aide pas non plus. J'ai également l'argument -wait (voir https://serverfault.com/a/550169/180067) mais cela n'a pas aidé non plus dans mon cas.

1voto

CivMeierFan Points 139

Cela est dû au fait que vous utilisez l'authentification Kerberos et que vous essayez d'effectuer un "double saut", ce qui n'est pas possible par défaut avec Kerberos (essentiellement, vous pouvez vous authentifier sur "monserveur", mais vous ne pouvez pas "sauter" à nouveau vers "serveurfichier").

Ce que vous pouvez faire :

  • Copiez le fichier localement sur le serveur, puis installez à distance le MSI à partir du répertoire local.
  • Ou, si vous ne voulez pas le copier localement, vous pouvez utiliser CredSSP au lieu de Kerberos pour vous authentifier sur "monserveur", mais cela nécessite une configuration. Ajoutez -Authentication CredSSP et -Credential "votreNomUtilisateur" à la commande, et suivez les instructions affichées dans le message d'erreur.

Des détails supplémentaires, des considérations et des solutions différentes sont disponibles ici : Effectuer le deuxième saut dans PowerShell Remoting

[...] Vous pouvez utiliser le Fournisseur de Support de Sécurité des Crédentiels (CredSSP) pour l'authentification. CredSSP met en cache les informations d'identification sur le serveur distant (ServeurB), donc en l'utilisant, vous vous exposez aux attaques de vol de données d'identification. Si l'ordinateur distant est compromis, l'attaquant a accès aux informations d'identification de l'utilisateur. CredSSP est désactivé par défaut sur les ordinateurs clients et serveurs. Vous devriez activer CredSSP uniquement dans les environnements les plus fiables. Par exemple, un administrateur de domaine se connectant à un contrôleur de domaine car le contrôleur de domaine est très fiable [...]

et ici pour configurer CredSSP : Activer la fonctionnalité "Second-Hop" de PowerShell avec CredSSP

Sur ma station de travail cliente, j'ai besoin d'utiliser la cmdlet Enable-WSManCredSSP pour activer le rôle client et ensuite spécifier l'ordinateur auquel je veux déléguer mes informations d'identification. Cette commande est affichée ici.

Enable-WSManCredSSP -Role Client -DelegateComputer *.iammred.net -Force

Maintenant, j'ai également besoin de faire une modification sur le serveur distant pour lui permettre d'utiliser les informations d'identification déléguées. Cette commande est affichée ici.

Enable-WSMaCredSSP -Role Server –Force

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X