IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

Client REXEC AS400


Sujet :

AS/400

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 35
    Points
    35
    Par défaut Client REXEC AS400
    Bien le bonjour,

    Je cherche à exécuter un programme à distance depuis un AS400, sur un pc sous Windows. Après quelques recherches sur le net, j'ai trouvé la commande RUNRMTCMD dispo dans l'AS400. Si j'ai bien pigé, c'est un client REXEC qui permet de se connecter à n'importe quel serveur REXEC dispo dans le réseau...

    J'ai alors cherché et rapidement trouvé un programme serveur REXEC pour Windows et un client pour le tester. Merci codeproject : ici.

    J'ai installé le service sur la machine Windows dont l'ip est 192.168.1.1. Depuis un autre pc windows, en ligne de commande j'utilise le client rexec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rexec.exe 192.168.1.1 notepad.exe
    Et merveilleux, notepad s'ouvre bien sur le pc distant !!!

    En confiance, je tape la fameuse commande sur l'AS400 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RUNRMTCMD CMD('NOTEPAD.EXE') RMTLOCNAME('192.168.1.1' *IP)
    Et je reçois un message d'erreur très explicite ... "La commande a échoué."


    Avec F4 j'ai remarqué qu'on pouvait (devait?) mettre login/password du pc distant.
    J'ai essayé mais je pense pas que ce soit nécessaire puise que testé avec un client rexec sous windows sans login/password...

    J'ai retourné RUNRMTCMD dans les sens, pas moyen d'avoir un résultat...

    Si quelqu'un sais me dire ce que je fais mal ?

    Où alors comment avoir plus d'info sur l'erreur qui se produit ?

    Merci d'avance,

    nico

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Comme je n'ai jamais utilisé cette techno, je ne peux que t'orienter vers certaines discussions, comme par exemple :
    appeler un programme s'executant sur un serveur windows 2003

    Lance une recherche sur le forum avec RUNRMTCMD, il a plein de discussions intéressantes.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Je ne suis pas sur que RUNRMTCMD puisse appeler n'importe quel serveur rexec. Normalement, c'est une fonction de Client Access. L'installation crée un service "Fonction de commande à distance" sur le PC.
    Il faut modifier le service pour indiquer un profil / mot de passe pour l'autoriser à utiliser le service puis modifier le service pour utiliser le compte local, l'autoriser à interagir avec le bureau, et le mettre en démarrage automatique.
    Sur ton AS400, tu peux alors utiliser RUNRMTCMD en indiquant le profil / mot de passe défini (attention aux majuscules/minuscules.
    Sur ton entrée de commande utilise la touche F10 pour afficher le détail des messages pour avoir un message plus précis si la connexion ne marche pas. La commande peut aussi générer un fichier spool si la connexion marche. C'est là que le programme écrira le retour si il y a (c'est le fichier stdout si tu veux)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 35
    Points
    35
    Par défaut
    Merci pour vos retours,

    Effectivement, la commande ne peut fonctionner qu'avec le serveur REXEC spécial codé par IBM. Il est donc absolument nécessaire de démarrer celui-ci et de s'authentifier avec login/mot de passe d'un compte sur la machine windows.

    Le service s'installe avec iseries access mais est arrêté et n'est pas en démarrage auto par défaut.

    ça marche nickel

    Merci encore,

    Nico

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    bonjour

    je re-déterre ce sujet pas si vieux

    visiblement il n'es tplus possible de lancer des jobs interactif depuis un AS400 vers W7 avec runrmtcmd.
    les processus se lancent bien mais en mode service , pas en mode bureau .

    j'ai tenté une option de contournement suggéré par IBM via un PStool nommé PSEXEC fournit coté microsoft , mais sans resultat probants...

    je voulais tenter de passer par un rexec , visiblement ca fonctionnerai selon les commentaires ci dessus , mais je n'ai pas compris ,
    - si il fallait , un server REXEC specifique coté W7
    - si il fallait lancé un service specifique coté client rexec sur l'AS400 via Iseries , car je ne sais pas comment faire .

    auriez vous svp des precisions sur la démarche ?

    merci !

  6. #6
    Membre averti
    Homme Profil pro
    Analyste-Programmeur IBM i, IBM Cognos TM1
    Inscrit en
    Août 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur IBM i, IBM Cognos TM1
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2002
    Messages : 232
    Points : 347
    Points
    347
    Par défaut
    Bonjour,

    Personnellement, j'utilise la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     * exécution d'une commande                                   
    D StdCmd          S            500A                           
    D StdLen          S             15P 5                         
    D Execute         PR                  ExtPgm('QCMDEXC')       
    D     CmdStr                          Like(StdCmd)            
    D                                     Options(*VarSize)       
    D                                     Const                   
    D     CmdStrLen                       Like(StdLen) Const      
    D var1            S                   Like(StdCmd)            
    D var2            S                   Like(stdLen)            
    D                                     Inz(%size(var1))
    et dans le programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    monitor;
    var1='STRPCO';                                                         
    Execute(var1:var2);                                                    
    on-error *all;                                                         
    endmon;                                                                
    var1='STRPCCMD PCCMD('c:\mon programme') PAUSE(*NO)';                                   
    Execute(var1:var2);
    pour des programmes en interactifs.

    Cela fonctionne très bien.

    Larry57

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par larry57 Voir le message
    Bonjour,

    Personnellement, j'utilise la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     * exécution d'une commande                                   
    D StdCmd          S            500A                           
    D StdLen          S             15P 5                         
    D Execute         PR                  ExtPgm('QCMDEXC')       
    D     CmdStr                          Like(StdCmd)            
    D                                     Options(*VarSize)       
    D                                     Const                   
    D     CmdStrLen                       Like(StdLen) Const      
    D var1            S                   Like(StdCmd)            
    D var2            S                   Like(stdLen)            
    D                                     Inz(%size(var1))
    et dans le programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    monitor;
    var1='STRPCO';                                                         
    Execute(var1:var2);                                                    
    on-error *all;                                                         
    endmon;                                                                
    var1='STRPCCMD PCCMD('c:\mon programme') PAUSE(*NO)';                                   
    Execute(var1:var2);
    pour des programmes en interactifs.

    Cela fonctionne très bien.

    Larry57
    Merci Larry pour ce retour

    le probleme est que les jobs que j'appelle sont soumis par un ordonnanceur , pas lancé par un user dans un appel programme . il faut donc que ma commande d'appel se logue sur le pc W7 distant et execute la commande souhaitée en interactif . je ne pense pas que STRPCCMD focntionne est job soumis . (ou alors je ne sais pas faire..)

    merci

  8. #8
    Membre averti
    Homme Profil pro
    Analyste-Programmeur IBM i, IBM Cognos TM1
    Inscrit en
    Août 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur IBM i, IBM Cognos TM1
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2002
    Messages : 232
    Points : 347
    Points
    347
    Par défaut
    Bonjour,

    J'ai lu mais non essayé que l'on peut exécuter cela via des commandes proxy :

    http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rbam6/proxycmds.htm


    Larry57

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    La méthode que j'utilisé aujourdh"ui , avec le runrmtcmd qui ne fonctionne plus sous 7 en interactif . d'ou ma question ce jour.

    Concernant la commande proxy ,je vais regarder mais je ne suis pas certain d'avoir compris la nuance et que ce soit adapté a mon besoin ..

    Concernant le Rexec personne ne connait ?

  10. #10
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 683
    Points : 984
    Points
    984
    Par défaut
    Bonjour
    Autre solution, développer un petit outil en VB (.net ou non), à l'aide des outils de développement d'iAccess, à placer sur la machine concernée.
    Faire une simple boucle qui attend que des données soient placées dans une DataQueue. On met tout ce qu'on veut dans une DataQueue, et surtout une commande à exécuter.
    En interne nous nous servons de cette solution pour générer des impressions, des faxs, lancer des procédures sur le réseau, etc...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 23/05/2014, 11h30
  2. Réponses: 4
    Dernier message: 16/09/2013, 11h06
  3. Réponses: 1
    Dernier message: 24/10/2006, 01h24
  4. Réponses: 1
    Dernier message: 11/07/2005, 17h09
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo