我的W2k8 R2服务器上安装了一个程序,需要pipe理员权限才能启动。
我有5个用户使用远程桌面远程进入服务器使用该程序。 我不想给这些用户的pipe理权限,但我希望他们能够正确运行程序。
这可能吗?
最好的办法是找出程序需要访问哪些registry项和目录位置,并让用户访问这些区域。
你可以使用一个工具,比如Sysinternals的Process Monitor 。 只需以用户身份login,启动Process Monitor,然后运行程序并logging拒绝访问的区域。
我可能会在AD中使用一个安全组,然后让安全组访问这些系统位置。 所有你需要做的就是将用户添加到该安全组,他们将能够使用他们自己的凭据在该系统上使用该程序。
肯定使用Cypher的build议。 我通过授予用户通过安全组(如果需要注册密钥)修改特定安装目录的权限,解决了许多讨厌的应用程序问题。 不幸的是,这假设一个能胜任的程序员编写应用程序的一半,并且在c:\ windows或c:\ windows \ system32中没有一个或两个需要相同访问权限的文件。
感谢您的答案,这是我最终解决它的方法:
C:\Windows\System32\schtasks.exe /run /tn "Name of task" 唯一的缺点是,我需要为每个用户创build一个单独的任务,但我认为它工作得很好。
感谢大家。
唯一的缺点是,我需要为每个用户创build一个单独的任务,但我认为它工作得很好。
为什么不创build一个“应用用户” – 只用于任务,只有你知道PW。
这样你就不需要为每个用户创build一个单独的任务,同时授予这个用户pipe理员权限给应用程序。
Windows没有UNIX的“setuid”概念。 实际上只有两种方式可以到达你所在的位置:
第一个选项是执行“run as”types的场景,login的用户需要为高架用户提供适当的密码。 另一种方法是编写一个以pipe理员权限运行的“帮助者”服务(如同服务一般),然后授予用户一个提升的权限。
我对第二种select的细节有些模糊,但我之前在一家曾经工作过的公司看过。