【发布时间】:2011-10-25 12:50:20
【问题描述】:
我需要能够通过可以从第三方软件调用的 exe 关闭服务,所以我想我会使用 C# 快速解决问题。
我正在尝试使用我在网上找到的以下代码来停止服务,但除非我以管理员身份运行 exe,否则它将无法工作(理想情况下,我不想这样做,因为我试图将其作为一个光滑的)
public static void StopService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
service.MachineName = ".";
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
catch
{
// ...
}
}
有没有办法绕过需要海拔?
【问题讨论】:
-
我不认为您可以停止 Windows 服务,除非该服务在同一帐户下运行。
-
这个技巧不会破坏特权和访问权限的目的。什么病毒不会利用这个技巧?
-
除了入侵系统/利用一些错误之外,没有其他办法... => 不!
-
大家好——从那个角度没有考虑过。我是域管理员,所以我可以以某种方式传递安全凭据吗?
-
一个更简单的解决方案可能是让用户在启动时以管理员身份运行。这是一个简单的设置功能吗?
标签: c# windows-services uac