none
[WMI] passer un Win32_ProcessStartup a la methode Create d'un Win32_Process RRS feed

  • Question

  • Bonjour,

     

    lorsqu'on utilise le wrapper .Net  System.Management sur WMI , lors de l'appel de la méthode Create sur un Win32_Process , le processus crée à distance n'apparait pas sur l'écran du système cible ( mais est bien crée ).

     

     

     

    Code Snippet

                //Options de connexion

                ConnectionOptions wmiOptions =

    new ConnectionOptions();

                wmiOptions.Username = "Administrateur";

                wmiOptions.Password = "password";

     

                //Spécification d'un référentiel distant

                String wmiServerName = "goldorak";

                String wmiRemoteRepository =

    String.Format(@"\\{0}\root\cimv2", wmiServerName);

                ManagementPath wmiScopePath =

    new ManagementPath(wmiRemoteRepository);

                ManagementScope wmiScope =

    new ManagementScope();

                      wmiScope.Path = wmiScopePath;

                      wmiScope.Options = wmiOptions;

     

                //Spécification d'une classe de gestion

                ManagementPath wmiClassPath =

    new ManagementPath("Win32_Process");

                ManagementClass wmiClass =

    new ManagementClass();

                      wmiClass.Scope = wmiScope;

                      wmiClass.Path = wmiClassPath;

               

                //invocation de la méthode

                Object[] args = { "notepad.exe", @"C:\",null, null };

                wmiClass.InvokeMethod("Create",args);

     

     

    la méthode Create de la classe Win32_Process prend les arguments suivants :

    Code Snippet
    uint32 Create(
      string CommandLine,
      string CurrentDirectory,
      Win32_ProcessStartup ProcessStartupInformation,
      uint32 ProcessId
    );

     

     


    Pour obtenir le display du programme lié au processus ( ici notepad.exe) , comment doit-on procéder ? ( sachant que la même technique utilisant VBScript fera apparaître le notepad.exe , c'est currieux que le comportement de l'enrobage .Net diffère ).

     

    Il existe une classe Win32_ProcessStartup avec un champ uint16 ShowWindow.

    Je ne pervient pas à comprendre comment utiliser cette classe pour forcer le display du processus garce à l'API .Net System.Management !

    A moins qu'il existe une autre méthode plus simple ?

     

    Si quelqu'un a une piste ou un code approprié pour forcer l'affichage du processus crée ?

     

    Cordialement aux lecteurs

     

    yoyo

     


     

    mardi 2 septembre 2008 15:19