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

C# Discussion :

[WMI] Win32_NetworkAdapterConfiguration et accessoirement C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Isher
    Invité(e)
    Par défaut [WMI] Win32_NetworkAdapterConfiguration et accessoirement C#
    Bonjour,

    Je ne sais pas trop où poster pour WMI, j'ai posté ici comme je code en C#.

    Je tente de modifier les paramètres réseaux en utilisant WMI en C#. Il s'avère que les paramètres ne sont pas modifiés.

    Si je tente l'opération avec l'outil de MS : wbemtest
    il me dit:
    Le fournisseur ne prend pas en charge l'opération tentée
    Suivant les machines sur lesquelles je travaille, je n'ai pas les mêmes réponses pour le même code.
    en effet, sur une je peux modifier la passerelle et les DNS alors que sur une autre, rien n'est modifiable.

    Je n'ai rien trouvé sur le Net à ce propos mais existe-t-il un 'flag'/verrou qu'il faudrait changer d'état pour modifier les valeurs réseaux?

    Merci d'avance pour vos réponses.

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Dans ton code (en supposant que tu ne t'es pas arrêté à wbemtest), lorsque les opérations ne fonctionnent pas, quel est leur code retour (exemples de code retour pour SetDNSDomain) ?

    Merci

  3. #3
    Isher
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par eusebe19 Voir le message
    Dans ton code (en supposant que tu ne t'es pas arrêté à wbemtest), lorsque les opérations ne fonctionnent pas, quel est leur code retour (exemples de code retour pour SetDNSDomain) ?
    Merci pour ta réponse. Oui j 'ai du code C# qui effectue le traitement, en ASP.NET plus exactement.

    Voulant connaitre le code de retour j'ai exécuté la page et seul le masque de réseau n'a pas été modifié.
    Puis lors d'essais successif, l'IP ne se modifie plus non plus.

    J'utilise la methode ManagementObject.InvokeMethod("SetDNSServerSearchOrder", ...") et je ne vois pas trop comment récupérer le code de retour. En fait je n'ai pas trouvé la propriété ds la doc MS

    Mon code ressemble bcp à celui de cette page sur CodeProjet qui m'a servi de base de travail.

  4. #4
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Re.

    En se basant sur l'exemple de CodeProject, tu récupères le résultat de InvokeMethod dans un ManagementBaseObject :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ManagementBaseObject objSetIP = objMO.InvokeMethod("SetGateways",objNewGate,null);
    C'est dans cet objet que tu vas récupérer le code retour, avec un truc du genre (je te laisse voir le type retourné, je ne sais plus précisément ce qu'il en est) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objSetIP["ReturnValue"]
    [edit]

    Personnellement, j'utilise ce genre de trucs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public enum MyReturnValue {
    	Successful_NoRebootRequired = 0,,
    	Successful_RebootRequired = 1,
    	MethodNotSupportedOnThisPlatform = 64,
    	UnknownFailure = 65,
    	...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (MyReturnValue)Enum.Parse(typeof(MyReturnValue), objSetIP["ReturnValue"].ToString());
    J'avais vu ça par là.

    [/edit]

    Bon courage

  5. #5
    Isher
    Invité(e)
    Par défaut
    Bon il semble que j'ai été impatient.
    En effet, lors de la relecture des paramètres réseau juste après la modification, j'obtiens les anciennes valeurs pour certaines propriétés.

    Par hasard, interrompu dans mon processus de test, j'ai ré-afficher les valeurs lues avec WMI un peu plus tard et elles étaient toutes bonnes.

    Comme quoi parfois être dérangé par le téléphone a du bon....

    Par contre sur mon autre machine, aucune valeur n'est modifiée, même après relecture différée, je vais regarder ce code de retour.
    Merci pour le lien.

Discussions similaires

  1. [C#] Probleme WMI
    Par pas05 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/07/2006, 15h17
  2. [WMI] accès à un poste distant
    Par bartmarley dans le forum Windows
    Réponses: 12
    Dernier message: 18/04/2005, 20h21
  3. Script WMI : redémarrer un ordi distant : erreur
    Par goliath99 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 06/08/2004, 15h33
  4. WMI et C++ ...
    Par gargle dans le forum MFC
    Réponses: 2
    Dernier message: 19/12/2003, 08h58

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