2016-05-11 7 views
1

Ich versuche, meinen PPPoE-Adapter nach this answer zu aktivieren/deaktivieren.
Es funktioniert gut mit normalen Adapter aber nicht mit PPPoE, die sagen, einen Fehler aus:C# WMI: Fehler beim Versuch, PPPoE-Adapter zu aktivieren/deaktivieren

ist ein Fehler aufgetreten, während für WMI-Daten abfragen: Ungültige Methode Parameter (s)

Der Adapter Name ist richtig Ich habe das WMI-Abfrage-Tool für diesen Zweck verwendet, aber ich habe keine Ahnung, welche Parameter festgelegt werden müssen. Jede Hilfe würde sehr geschätzt werden.

bearbeiten

Hier ist der Code, den ich verwendet:

static void Main(string[] args) 
    { 
     try 
     { 
      ManagementObjectSearcher searcher = 
       new ManagementObjectSearcher("root\\CIMV2", 
       "SELECT * FROM Win32_NetworkAdapter WHERE Name = 'WAN Miniport (PPPOE)'"); 

      foreach (ManagementObject queryObj in searcher.Get()) 
      { 
       queryObj.InvokeMethod("Enable", null); 
       //Console.WriteLine("Name: {0}", queryObj["Name"]); 
      } 
     } 
     catch (ManagementException e) 
     { 
      Console.WriteLine("An error occurred while querying for WMI data: " + e.Message); 
     } 
     Console.ReadKey(); 
    } 

Antwort

0

Ok ich mich hier mit DotRas gefunden haben, ist der Code zum Verbinden/Trennen PPPoE-Verbindung (AKA Einwahl):

using System; 
using System.Linq; 
using System.Net; 
using DotRas; 

namespace Test_Reconnect_PPPoE 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      // Connect 
      using (RasDialer dialer = new RasDialer()) 
      { 
       dialer.EntryName = "Your Entry (Connection Name)"; 
       dialer.PhoneBookPath = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.User); 
       dialer.Credentials = new NetworkCredential("username", "password"); 
       dialer.Dial(); 
       Console.WriteLine("Connected"); 
      } 
      // Disconnect 
      RasConnection conn = RasConnection.GetActiveConnections().Where(o => o.EntryName == "Your Entry (Connection Name)").FirstOrDefault(); 
      if (conn != null) 
      { 
       conn.HangUp(); 
       Console.WriteLine("Disconnected"); 
      } 
      Console.ReadKey(); 
     } 
    } 
} 

Hoffe, das wird jemandem helfen.