psexec sous Linux ? winexe

closeCet article a été publié il y a 10 ans 3 mois 9 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Cet article décrit bien la mise en place de l’outil winexe (à compiler à la main) et fournissant un équivalent de psexec (de sysinternals) sous Linux, permettant ainsi d’exécuter des commandes sur des hôtes Windows depuis un Linux en s’authentifiant sur le domaine Windows.

Ca peut permettre de scripter de belles choses pour automatiser un peu du Windows. Dans mon cas, ça permet aussi de déclencher des impressions à distance pour un besoin particulier.

Je voudrais juste amender l’article cité précédemment pour apporter des précisions sur la compilation en 64 bits et sur l’utilisation un peu plus poussée que l’éternel « cmd » ou « ipconfig » à distance.

Compilation

D’abord j’ai eu besoin d’ajouter les paquets suivant sur mon système : python-dev et pkg-config sinon le ./configure braille un peu, voire bloque s’il ne trouve pas python-dev.
Ensuite je n’ai pas utilisé gmake, mais make et à part quelques erreurs de compilation, l’outil passe très bien.
En résumé, ça donne :

cd winexe-1.00/source4
./autogen.sh
./configure
make basics
make idl
make bin/winexe

On obtient un binaire avec une lib manquant : linux-vdso.so.1
J’ai pas cherché, ça fonctionne tel quel.

Utilisation

Le truc classique est bien du genre winexe -U DOMAINE/user%pass //host_ou_ip commande. Mais pour un besoin particulier (lancer une impression de PDF à distance localement sur le poste d’un utilisateur connecté – depuis un serveur, histoire d’expliquer), il fallait passer par le compte système. C’était déjà le cas avec psexec.
Ca donne quelque chose comme ça : winexe -U DOMAINE/user%pass --system //un_windows 'c:\bla\sumatrapdf.exe -silent -exit-on-print -print-to "HP mon nom long d imprimante de l utilisateur" \\un_host\un\chemin\un.pdf'
Je m’authentifie avec un compte admin sur la machine « un_windows » mais j’utilise le compte système pour lancer l’impression, sinon l’imprimante de l’utilisateur actuellement installée n’est pas connue…

Voilà voilà, si ça peut resservir.

3 comments

  1. Salut,
    Quel version de winexe utilise tu ?
    Car moi ca ne fonctionne pas, il y a apparemment des erreurs dans le code lors de la compilation
    je test sous virtualbox, avec une debian 7

    1. sur le site de sourceforge il n’y a que 2 versions possibles, ça devrait être assez simple
      je viens de compiler avec succès il y a quelques minutes avec la version 1.00 et un make basics bin/winexe directement (pas de make idl entre les deux), dans une vm ubu

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.