C# WMI:当我尝试 enable/disable PPPoE 适配器时抛出错误
C# WMI: Throws an error when I try to enable/disable PPPoE adapter
我正在尝试 enable/disable 我的 PPPoE 适配器根据 this answer。
它适用于普通适配器,但不适用于 PPPoE,它会抛出一条错误消息:
An error occurred while querying for WMI data: Invalid method Parameter(s)
适配器名称正确 我为此目的使用了 WMI 查询工具,但我不知道需要设置哪些参数。任何帮助将不胜感激。
编辑
这是我使用的代码:
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();
}
好的,我已经找到了 DotRas 的方法,这里是 connect/disconnect PPPoE 连接(又名拨号)的代码:
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();
}
}
}
希望这对某人有所帮助。
我正在尝试 enable/disable 我的 PPPoE 适配器根据 this answer。
它适用于普通适配器,但不适用于 PPPoE,它会抛出一条错误消息:
An error occurred while querying for WMI data: Invalid method Parameter(s)
适配器名称正确 我为此目的使用了 WMI 查询工具,但我不知道需要设置哪些参数。任何帮助将不胜感激。
编辑
这是我使用的代码:
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();
}
好的,我已经找到了 DotRas 的方法,这里是 connect/disconnect PPPoE 连接(又名拨号)的代码:
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();
}
}
}
希望这对某人有所帮助。