mrt*_*ndi 1 .net windows-services
有没有在不需要.Net中的管理员执行级别权限的情况下获取正在运行的Windows服务的可执行文件路径?(不会导致UAC获得用户的确认)
这是使用WMI的可能解决方案:
using System.Management;
String query = String.Format("SELECT PathName FROM Win32_Service WHERE Name = '{0}'", serviceName);
using (ManagementObjectSearcher mos = new ManagementObjectSearcher(query)) {
foreach(ManagementObject mo in mos.Get())
Console.WriteLine(mo["PathName"].ToString());
}
Run Code Online (Sandbox Code Playgroud)
确保将其包装ManagementObjectSearcher在一个using块中,因为它是一种资源,需要妥善处理.
我不确定这是否需要提升权限才能运行,但它确实需要在计算机上安装和运行WMI.要检查WMI是否正在运行,请打开服务管理单元并查找Windows Management Instrumentation.您也可以通过net start winmgmt从命令行运行来启用它.
| 归档时间: |
|
| 查看次数: |
7097 次 |
| 最近记录: |