我有一个 winform,它允许我使用以下代码启用和禁用我所有 8 岁 child 的网络适配器:
protected override void OnStart(string[] args)
{
//start timer
SelectQuery query = new SelectQuery("Win32_NetworkAdapter","NetConnectionStatus=2");
ManagementObjectSearcher search = new ManagementObjectSearcher(query);
foreach (ManagementObject result in search.Get())
{
NetworkAdapter adapter = new NetworkAdapter(result);
adapter.Disable();
enabled = false;
}
InternetCheckTimer.Start();
}
假设我使用管理员运行,此代码在 win 表单上运行良好。我以前从未编写过 win 服务,所以问题可能出在其他地方,我可以使用 installutill 进行安装并将调试器附加到进程,但是没有遇到断点。我已经尝试启动和停止进程,但无法让调试器附加,所以我也可能做错了……现在我假设代码正在运行,但我太笨了,无法让调试器工作。也就是说,我认为我的代码需要服务像表单一样拥有管理员才能工作。
抱歉,如果不清楚,如果您需要更多信息,我会尽力解决。
最佳答案
为服务使用用户名和密码,并确保启动服务的用户拥有应用程序运行所需的所有权限。 如果您可以控制该服务,另一种可能性是使用模拟,请参阅:http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C .
关于c# - 如何授予我的 Windows 服务管理员权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13082284/