是否可以在不使用“以管理员身份运行”的情况下提升Windows中程序的权限?


3

我有一个需要以管理员权限运行的MSI。此安装程序将执行一些管理员工作,并最终在用户的桌面上放置一个快捷方式。当我将安装程序设置为“以管理员身份运行”时,MSI实际上在管理员帐户的配置文件下运行。快捷方式位于管理员桌面下,而不是用户桌面下。

是否可以使用提升的权限(而非以管理员身份运行)运行安装程序,这将提示输入管理员凭据,但仍然在非管理员用户的配置文件下运行安装程序,以便将快捷方式,新文件夹,新文件等放入非管理员用户的位置?


据我所知,“以提升权限运行”和“以管理员身份运行”只是说同样事情的不同方式。我所知道的一件事,就是安装了一个安装程序,其名称包含'setup'或'install'(或本地化的等价物)的可执行文件将自动以提升的权限运行,因为安装程序必须这样做。
RobH

“以管理员身份运行”会提升流程并以另一个用户身份运行流程。所以是的,存在差异,即使作为管理员用户,您有时也需要提升流程。
Ramhound

1
为什么非管理员用户尝试运行需要提升的msi?
kreemoweet

1
@billoreid是的,只是如果用户是管理员组的成员,它运行的“其他用户”就是相同的用户名和用户配置文件。它仍然被认为是“另一个用户”,它有微妙的副作用。例如,映射驱动器对于提升的进程消失,这是因为映射的驱动器是“每个用户”,并且因为您作为“不同的用户运行(即使它具有相同的用户名)”,映射不存在。
Scott Chamberlain

1
@billoreid - 运行该进程的用户必须具有这些提升的权限才能将该进程提升为该用户而不是另一个用户。
Ramhound

Answers:


1

您有两种选择。

  1. 找出MSI是否支持ALLUSERS属性,它就是这样做:将快捷方式放入所有用户的桌面。可能是实施部署的最安全,最快捷的方法。
  2. 修改Aaron Margosis' MakeMeAdmin脚本 暂时将用户添加到“管理员”组,并在程序启动后立即将其删除。这需要两个密码条目:一个是管理员,另一个是用户刚刚提升到本地管理员。

希望有所帮助。


#1是我理想的做法,但安装确实需要管理员权限,因为它安装了其他软件和Windows服务。 #2看起来是一个非常好的选择,只需要实际管理员的最小参与。
billoreid
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.