Question exécution de commande à distance sur le serveur Windows 2003


J'ai une seule commande à exécuter sur un serveur Windows 2003 distant.

J'ai essayé wmic, ce qui fonctionne, mais le seul moyen d'afficher une sortie standard est de le rediriger vers un fichier local, puis de répertorier le fichier local (un peu encombrant).

J'ai également essayé psexec, mais cela semble poser des problèmes de fonctionnement avec les serveurs Windows 2003 (du moins, il est signalé que la dernière version le fait - et les versions antérieures ne sont pas disponibles).

J'essayais de rester à l'écart de l'utilitaire Windows rcmd car je pense qu'un composant de serveur doit être installé et je ne voulais pas fournir un accès général en ligne de commande à la machine.

Existe-t-il d'autres suggestions d'outils ou d'utilitaires qui me permettraient d'exécuter des commandes spécifiques sur une machine distante?

Remarque:

Voici un exemple très simple que j'utilisais pour tenter de faire fonctionner PsExec:

C:\Program Files\SysInternalsSuite>psexec \\remote-svr -i -u MyUsername D:\Public\do.bat

PsExec v1.95 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

Password:

D:\Public\do.bat exited on remote-svr with error code 1.

Mon exemple de fichier do.bat est trivial et ne contient que la ligne suivante:

copy dg.bmp dg1.bmp

Le fichier source dg.bmp est présent sur la machine distante, le fichier de destination ne l’est pas. J'ai un accès en écriture à la machine distante.

Lorsque j'exécute la commande PsExec ci-dessus, le fichier do.bat ne s'exécute pas (même si j'ai des privilèges sur le serveur distant) et je ne reçois pas la sortie attendue sur la console. J'aime bien l'idée d'utiliser PsExec, alors s'il y a des conseils sur ce que je peux faire de mal, j'apprécierais de les entendre.

Merci...


6
2018-06-26 21:44


origine


Quelle commande essayez-vous d'exécuter sur la machine distante? - JS.
Toute commande dans votre fichier do.bat qui échoue entraînera sa fermeture avec un code d'erreur> 0. Je suppose que le fichier do.bat est en cours d'exécution, mais que quelque chose dans ce fichier ne fonctionne pas correctement. Pouvez-vous nous montrer ce fichier? - romandas
FWIW, je n’ai jamais eu de problèmes avec psexec et Windows 2003. - romandas
Je n'ai qu'une ligne dans le fichier do.bat (copie dg.bmp dg1.bmp). J'essaie simplement de prouver que je peux faire quelque chose de simple à distance avec PSExec. - Steve Hawkins


Réponses:


Quels problèmes avez-vous avec PSExec et W2k3 exactement? Nous utilisons les deux ensemble de manière intensive, dans un environnement de serveur de plus de 500 serveurs W2k3 ...

En fait, toute la suite PSTools berce mon monde.

MODIFIER:

Ceci fait suite à votre modification du ticket d'origine.

Le problème que vous rencontrez est que la "copie" est une fonction de CMD.exe. Il n'existe pas comme son propre exécutable à part entière. Comme s'il n'y avait pas de Del.exe, ni de MD.exe, etc.

Si vous voulez que votre exemple fonctionne, vous devez appeler CMD via PSexec et lui transmettre la commande copy. Voici un exemple:

psexec -u MyDomain\MyUsername -p MyPassword \\MyServer cmd.exe /c copy c:\sys\util\monitor_localhost.bat blah.bat

Le résultat est le suivant:

==================================
PsExec v1.86 - Execute processes remotely Copyright (C) 2001-2007 Mark Russinovich Sysinternals - www.sysinternals.com

1 file(s) copied. cmd.exe exited on fcgwnt53 with error code 0.
==================================

7
2018-06-26 23:40



J'ai ajouté un commentaire à ma publication originale ci-dessus. Toutes les suggestions sont appréciées - Merci. - Steve Hawkins
Modifié ma réponse après votre modification - Izzy
Merci beaucoup, votre suggestion a bien fonctionné. J'apprécie vraiment le conseil. - Steve Hawkins
Content que ce soit utile :) - Izzy


Admin Arsenal vous permet d'exécuter commandes à distance à un, certains ou tous vos systèmes Windows. C'est gratuit d'essayer.

Une fois que vous avez sélectionné le ou les ordinateurs sur lesquels exécuter votre commande, sélectionnez simplement Outils -> Commande à distance et vous êtes prêt.


3
2018-06-27 00:12





Le moyen d'exécuter une commande à distance dans un environnement Windows consiste à utiliser Winrm et WINrs. Voir Comment activer Windows Remote Shell et Comment WinRM et WinRS peuvent vous aider, comment les activer, et des exemples de leur utilisation. 


2
2018-06-26 22:23





Les commandes standard peuvent être exécutées via telnet, qui est désactivé par défaut sur tous les postes de travail Microsoft, mais via un objet de stratégie de groupe et l'ajout d'un utilisateur au groupe d'objets "Utilisateurs Telnet". Cela devrait suffire pour la plupart des commandes système.


0
2018-06-26 22:48





Vous voudrez peut-être essayer l'option "-c" pour psexec. Il copiera le fichier sur le système distant, puis l'exécutera, sinon il s'attendra à ce qu'il soit présent sur le système distant. Donc, quelque chose comme (copiez le do.bat dans le c: et ensuite du système local):

psexec -c \ remote-svr -i -u monUsername c: \ do.bat

Aussi, pourquoi voulez-vous que cela interagisse avec la session de bureau du système distant (l'option -i)?

hth ~ H


0
2018-06-27 11:07





Votre commande générique suppose que do.bat est présent localement sur le serveur distant à l'emplacement spécifié. Si ce n'est pas le cas, vous pouvez demander à psexec.exe de copier le fichier de votre machine locale vers une machine distante à l'aide de l'option -C, puis de l'exécuter.

De plus, comme indiqué, si vous ne faites rien, les commandes interactives avec script n'incluent pas l'option -I.

J'ai essayé beyondexec.exe, c'est un bon remplacement pour psexec.exe.

Mais je préfère psexec.exe car il est maintenant fourni par Microsoft, il est donc plus facile de justifier son existence sur les serveurs pour les faucons de sécurité.


0
2018-06-26 23:53



Voir la note que j'ai ajoutée à mon message ci-dessus. - Steve Hawkins


Je peux me tromper, mais PS 2.0 ne permet-il pas les commandes à distance et PS 1.0 local uniquement?


0
2018-06-27 18:25





Je ne peux pas dire que j'ai déjà essayé cela sur une machine Windows mais sous Linux, vous pouvez restreindre les commandes que ssh peut exécuter via l'utilisation du script Authprogs.

Je mets la version HP de SSH sur la plupart de mes systèmes Windows pour une utilisation en ligne de commande à distance. Je l’ai trouvé assez facile à installer par rapport à certaines des autres distributions de ssh pour Windows. Google "SP25021" pour trouver le programme d'installation fourni par HP.

Je suis sûr que de nombreuses versions plus récentes de sshd pour Windows sont disponibles. Je conseillerais d'utiliser la dernière version possible si vos systèmes ne sont pas protégés par des pare-feu sérieux.

Voir: Limitation des commandes SSH http://www.cmdln.org/2008/02/11/restricting-ssh-commands/


-1
2018-06-26 23:29