我已经写了一个服务,网站可以使用ExecuteCommand方法远程执行命令。我已经注意到,如果网站不是在远程机器上的管理员用户下运行,那么我在尝试执行命令时会得到一个权限被拒绝的异常。
servicecontroller类甚至不允许您指定任何身份验证参数。是这样的吗?是否有一组特定的权限是用户需要的,而不是管理员,因为我不愿意将集群中的所有set服务器用户添加为服务计算机上的本地管理员?
发布于 2011-05-19 11:37:10
您必须临时模拟当前线程的管理员用户,然后再恢复。在MSDN中查找WindowsIdentity.Impersonate()。
ServiceController将使用当前线程的主体进行注册表和服务控制管理器调用,如果您想要操作服务,则必须确保将其设置为管理员用户。缺点是您需要将帐户的密码存储在某个地方,请确保您使用的是SecureString,而不是以纯文本形式存储密码。
https://stackoverflow.com/questions/1913429
复制相似问题