我有一个构建的Windows服务,它由.NET 2.0的installutil /i
命令安装。它使用以下帐户安装服务,密码为:
NT AUTHORITY\LocalService
当我使用net start <serviceName>
运行我的服务时,我得到了
Error 5: Access Denied
要删除它,我必须打开services.msc
并从属性中提供服务
Logon As -> Local System Account
-> Allow Service to interact with desktop.
我可以将整个“clicky”业务放入代码中,这些代码可以是本机.NET C#代码还是WMI或其他一些批处理脚本?无论如何我都会使用批处理脚本,所以要么很好。
答案 0 :(得分:4)
找出答案,非常感谢以下网页,我完全赞同。
这是我的解决方案,只需根据需要更改您的服务名称。将其放入C#控制台应用程序并运行它:)
static void Main(string[] args)
{
string serviceName = "SERVICE_NAME_HERE";
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
{
object[] wmiParams = new object[11];
wmiParams[6] = "LocalSystem";
wmiParams[7] = "";
service.InvokeMethod("Change", wmiParams);
}
}
}