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

Delphi Discussion :

Envoi fichier poste distant


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut Envoi fichier poste distant
    Bonjour a tous,
    mon application se connecte via WMI à d'autres postes en sachant leurs mots de passes administrateur... Je me demandai si il était possible de leurs envoyer un fichier via WMI ou autre manière... Je sais le nom du PC, user et mot de passe... J'aimerai explorer l'ordinateur distant et dire où mettre le fichier que je veux envoyer...
    Merci d'avance a tous

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Points : 55
    Points
    55
    Par défaut
    Désolé de décevoir, mais je ne donne pas de réponse, j'arrive toujours pas à utiliser les WMI, et comme tu as l'air de savoir les utiliser...

    J'utilise delphi 2005 et Xp, j'importe la librairie, mais j'arrive pas à aller plus loin...

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut
    Regarde ce tuto de
    laurent dardenne

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Points : 55
    Points
    55
    Par défaut
    Lu, imprimé et même relié !
    Je suis sa méthode, mais c'est après que ça coince. Les importations de librairies se passent bien, mais je n'arrive pas à compiler des exemples d'utilisations des WMI.

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut
    Je débute en delphi mais bon j'ai fai une fonction pour récuperer les infos. Elles fonctionne bien pour récuperer address IP, ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    // Fonction lecture infos WMI
    // InfoWMI('Nom de l'instance Win32_...', 'Nom de la propriété')
    function InfoWMI(Instance, Properties : String) :TStringList;
    var
      WmiLocator:          TSWbemLocator;
      WmiService:          SWbemServices;
      WmiObjectSet:        SWbemObjectSet;
      WmiObject:           SWbemObject;
      //WmiProperty:         SWbemProperty;
     
      ObjectEnumerator:    IEnumVariant;
     
      ArrayVariant:        OleVariant;
      NumberItem:          LongWord;
    begin
      result := TStringList.create;
      DNS2 := TStringList.create;
      WmiLocator:= TSWbemLocator.Create(nil);
      try
        Screen.Cursor := crAppStart;
        // Connexion WMI (PCName, 'ROOT\CIMV2', UserName, UserPassword, '', '', ...)
        WmiService:= WMILocator.ConnectServer(sPCName, 'ROOT\CIMV2', sUserName, sUserPwd, '',
                                              '', wbemConnectFlagUseMaxWait, nil);
        WmiObjectSet := WmiService.InstancesOf(Instance,
                                                wbemFlagReturnWhenComplete, nil);
        // Affecte un énumérateur pour la collection d'objet SWbemObject
        ObjectEnumerator:= (WmiObjectSet._NewEnum) as IEnumVariant;
     
        // Retourne NumberItem éléments dans le tableau ArrayVariant
        while (ObjectEnumerator.Next(1, ArrayVariant, NumberItem) = S_OK) do
        begin
          // Récupére de la collection l'objet SWbemObject courant
          WmiObject := IUnknown(ArrayVariant) as SWBemObject;
          If WmiObject.Properties_.Item(Properties,0) <> nil Then
          begin
            if not VarIsNull(WmiObject.Properties_.Item(Properties, 0).Get_Value) Then
            begin
              if WmiObject.Properties_.Item(Properties,0).IsArray Then
              begin
                if not VarArrayHighBound(WmiObject.Properties_.Item(Properties,0).Get_Value, 1) > 0 Then
                begin
                  // Retrouve la propriétés de l'instance au format MOF
                  result.add(WmiObject.Properties_.Item(Properties,0).Get_Value[0]);
                  if(Properties = 'DNSServerSearchOrder') Then DNS2.add('');
                end
                else
                begin
                  result.add(WmiObject.Properties_.Item(Properties,0).Get_Value[0]);
                  if(Properties = 'DNSServerSearchOrder') Then
                  begin
                    if VarArrayDimCount(WmiObject.Properties_.Item(Properties,0).Get_Value) > 0 Then
                      DNS2.add(WmiObject.Properties_.Item(Properties,0).Get_Value[1])
                    else DNS2.add('');
                  end;
                end;
              end
              else
              begin
                // Retrouve la propriétés de l'instance au format MOF
                result.add(WmiObject.Properties_.Item(Properties,0).Get_Value)
              end;
            end
            else
            begin
              result.add('');
              if(Properties = 'DNSServerSearchOrder') Then DNS2.add('');
            end;
          end;
        end;
        Screen.Cursor:= crDefault;
      Finally;
      WmiLocator.Disconnect;
      WmiLocator.Free;
      end;
    end;
    Par exemple pour récuperer addresse IP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbCardNumResult.Caption := InfoWmi('Win32_NetworkAdapterConfiguration WHERE IPEnabled = True', 'IPAddress')[0];

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Points : 55
    Points
    55
    Par défaut
    Je te remercie, mais tu pourrais aussi me préciser les USES que tu a utilisé, lorsque je teste ta fonction, il me manque plein de déclaration (IEnumVariant, DNS2...)

  7. #7
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 65
    Points
    65
    Par défaut
    uses WbemScripting_TLB, ActiveX

    et dans les var globales DNS2 :String;

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Bativir pour ton besoin regarde les outils de Sysinternals sur le site de MS, je ne suis pas certains que WMI permet de faire des copie de fichiers entre PC.
    Si tu fais de l'administration système regarde PowerShell...

    Citation Envoyé par Cthulhu_RLyeh
    mais je n'arrive pas à compiler des exemples d'utilisations des WMI.
    Moi je n'arrive pas à comprendre ton problème. Peut-on avoir d'autres informations à son sujet ou c'est top-secret ?

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Points : 55
    Points
    55
    Par défaut
    Euh, je l'explique en vitesse (j'ai ouvert une discussion sur ce sujet ( http://www.developpez.net/forums/sho...d.php?t=321662 ).

    je n'arrive pas à ouvrir les exemples WMI avec Delphi 2005, en ayant importé les bibliothéques requises.
    La solution (simple, mais n'expliquant pas le pourquoi du comment, se nomme Delphi 7...).

    Comme je dois faire un logiciel type Everest, enter API et WMI, le choix est vite fait !

    PS : merci pour le tutoriel.

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Cthulhu_RLyeh
    j'ai ouvert une discussion sur ce sujet
    J'y ai répondu.
    Citation Envoyé par Cthulhu_RLyeh
    PS : merci pour le tutoriel.
    De rien c'est fait pour, content qu'il puisse t'aider

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/03/2010, 23h18
  2. Rechercher des fichiers sur des postes distants
    Par iguano62 dans le forum VBScript
    Réponses: 1
    Dernier message: 12/01/2010, 23h59
  3. copie d'un fichier depuis un post distant
    Par maverick56 dans le forum Réseau
    Réponses: 6
    Dernier message: 18/01/2008, 11h07
  4. [FTP] Envoi fichier sur FTP distant
    Par killbrice dans le forum Langage
    Réponses: 3
    Dernier message: 05/07/2007, 23h29
  5. [Servlet] Créer un fichier sur un poste distant
    Par JohnBlatt dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/05/2005, 18h51

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