Management Class Generator

Ptlpn Messages postés 16 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 9 février 2005 - 5 août 2004 à 20:55
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 9 août 2004 à 22:15
Pour mon projet actuel, je cherche a lancer depuis mon application des process independants sur des machines distantes. Pour cela, j ai trouve le Management Class Generator (Mgmtclassgen.exe) qui permet de creer une classe managee.

Ainsi je peux par exemple lancer un process sur ma machine, en local.

En cherchant un peu sur la doc msdn (
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cptools/html/cpgrfmanagementstronglytypedclassgeneratormgmtclassgenexe.asp
), j ai trouve qu on pouvait creer un tel objet pour une machine
distante (option /m), mais je suis incapable de lancer une appli sur cette machine.
Le process lance se lance toujours sur ma machine en local, et j ai
bien l impression que le fichier cree avec Mgmtclassgen.exe ne change pas lorsque je lui specifie une machine distante ou non...

Quelqu un peut il m eclairer sur mon probleme?

4 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 août 2004 à 21:14
je crois plutot que cette option permet de generer le code pour une classe WMI presente sur la machine visée (comme si tu executait mgmclassgen sur la machine en question)
mais en aucun cas de lancer un process sur cette machine

Cocoricoooooooo !!!!
0
Ptlpn Messages postés 16 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 9 février 2005
5 août 2004 à 21:52
Ah! Ca ca m arrange pas du tout du tout...

Et y a t il un moyen alors de lancer simplement un process sur une machine distante??

Et merci pour la rapidite de la reponse precedente Coq ;))
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 août 2004 à 21:58
de rien :)

pour la 2eme question je n'en ai aucune idée, mais la reponse m'interresse aussi, juste par curiosité ^^

Cocoricoooooooo !!!!
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 août 2004 à 22:15
Oui c'est possible toujorus grâce a WMI et WBEM si on a les droits nécessaires sur la machien distante.

Voici un exemple en script :

Dim UserName
Dim Password
Dim ServerFile
Dim WorkStationName
Dim Command
Dim fso
Dim infile

Password=YourPassword
UserName=YourUsername
ServerName=TheMachine to run in on

Command=command you want to run
Result=RunScript(ServerName,Command,UserName,Password)

Function RunScript(Server,nCommand,nUsername,nPassword)
     On Error Resume Next
     Set Service = ConnectServer(Server,nUsername,npassword)
     Set Proc= Service.Get("Win32_Process")
     Dim PID
     result=Proc.create(nCommand,Null,Null,Pid)

Select Case result
     Case 0
          Message="Successful completion "
     Case 2
          Message="Access denied"
     Case 3
          Message="Insufficient privilege"
     Case 8
          Message="Not enough storage is available to process this command"
     Case 9
          Message="Path not found"
     Case 21
          Message="Invalid parameter"
     Case else
          Message="Unknown error"
End Select 
RunScript=Message
End Function

Function ConnectServer(sServer,sUser,sPassword)
On Error Resume next
  Set objLocator = CreateObject("WbemScripting.SWbemLocator")
  'Connect to the namespace which is either local or remote
  Set objService = objLocator.ConnectServer (sServer,"root\cimv2", sUser, sPassword)
  ObjService.Security_.impersonationlevel = 3
  
  Select Case Err.Number 
     Case -2147024891
          WScript.Echo "Access is Denied"
          Err.clear
          RunScript=-2
          Exit Function     
     Case -2147217405 
          WScript.Echo "Insufficient Privileges on " & Server
          Err.Clear
          RunScript=-2
          Exit Function
     Case -2147217394 
          WScript.Echo "Invalid Namespace"
          Err.clear
          RunScript=-1
          Exit function
     Case 0
          Set ConnectServer=objService
     Case Else
          WScript.Echo Err.Number & ":" & Err.Description 
          wscript.echo sServer & sUser & sPassword
End Select

End Function


::|The S@ib|::
MVP C#.NET
0
Rejoignez-nous