Bonjour à tous,

Je cherche à adapter un bout de script vbs en c#, mais me casse la tête a essayer de le convertir correctement..
L'élément me bloquant, est de passer la methode SetBIOSAttributes à un objet objWMIService..

Voici le code me bloquant
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
 
'*** Retrieve the instance of DCIM_BIOSService class 
'    Set objWMIService = GetObject("WinMgmts:{impersonationLevel=impersonate," &_
'        "AuthenticationLevel=pktprivacy}\\" & strComputerName & "\" &_
'        strNameSpace)
'    Set ColSystem=objWMIService.execquery ("Select * from " & strClassName)
 
'    For each objInstance in ColSystem    
'        Set oInParams = objInstance.Methods_("SetBIOSAttributes").InParameters.SpawnInstance_
'        oInParams.AttributeName = strAttributeName //Nom de l'attribut a passer
'        oInParams.AttributeValue = strAttributeValue // Valeur de l'attribut
'        oInParams.AuthorizationToken = strAuthorizationToken
'        Set returnValue = objInstance.ExecMethod_("SetBIOSAttributes", oInParams)
'        Exit For
'    Next
j'ai essayé via cette façon, mais cela me renvoi un message d'erreur: La référence d'objet n'est pas définie à une instance d'un objet.
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
 
ManagementPath path = new ManagementPath("\\\\PCXX\\root\\dcim\\sysman");
            ManagementScope scope = new ManagementScope(path);
            SelectQuery msQuery = new SelectQuery("SELECT * FROM DCIM_BIOSService");
            ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(scope, msQuery);
 
            string[] attrib = { "Wake-On-LAN" };
            string[] val = { "4" };
            object[] methodArgs = { null,null, attrib,val,"pwd" };
            foreach ( ManagementObject item in searchProcedure.Get() )
            {
                try
                {
                    item.InvokeMethod("SetBIOSAttributes", methodArgs);
                    foreach (string returned in methodArgs)
                    {
                        Console.Write(returned.ToString());
                    }
                }
                catch (SystemException excep)
                {
                    Console.Write(excep.Message);
                }
            }
Je suis preneur de toute piste, si vous avez des idées, un petit coup de pouce a me donner, je sèche bien la
(Oups) je pense que je me suis trompé de partie de forum, ( => C# ).. sorry..