我有一个windows服务S,指定以用户U登录运行。
现在我需要在线更新升级这个windows服务。
我的想法是由服务S接收所有文件到一个备用目录(包括升级程序US),接收成功由服务S启动新的进程US并停止当前服务。
升级程序US将新文件覆盖旧文件后,使用ServiceController启动服务S。由于升级程序US是由服务S启动的,他的权限也只有用户U的权限,无法启动服务S。
注明:我不想将服务S指定到本地用户或管理员权限。
想知道有没有办法给某个windows服务指定控制权限到某个用户,而不影响到用户的角色或其它权限?

解决方案 »

  1.   

    通过“安全配置和分析”设置了服务控制权限,不过产生了一连串的负作用。不知道各位是如何正常使用的?同时服务S启动也异常-->此服务器帐户没有足够的用户权限(“登录为服务”权限)。
    只好通过 本地安全策略-本地策略-用户权限分配-作为服务登录 把用户添加权限,服务能启动正常了,也能升级成功了。服务器上的所有网站异常-->当前标识 没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限
    只好把asp.net2卸掉重装,结果所有应用程序池异常-->应用程序池 ... 的标识无效。如果处理此应用程序池的第一次请求时仍然无效,将禁用此应用程序池。数据域包含错误号。
    现在的问题是应用程序池指定用户的方式登录的话怎么也启动不了,相当郁闷。
    请问有什么好办法吗?“安全配置和分析”太可怕了。你说的应该是指定登录用户,与控制权限没有关系。
      

  2.   

    多次重启IIS后没问题了。但是“安全配置和分析”还是相当可怕,以后都不敢用了。
    不知道这个工具有没有人用过?会不会有负作用?
      

  3.   

    可以
    http://blog.sina.com.cn/s/blog_4b3485000100p1zj.html