以OnAfterInstall中的其他用户身份启动进程会拒绝访问

时间:2010-01-22 07:04:32

标签: process windows-installer

我正在尝试在其他用户的上下文中启动.bat文件作为OnAfterInstall的最后一步。我这样做是通过使用Process.Start重载,用户名,域和密码作为输入。如果我不检查安装中的“Everyone”,它工作正常。如果我选择了“每个人”,我会被同一个用户(管理员)拒绝访问。如果我使用.start方法只使用进程名称来运行该分期,那么它可以正常工作。

为了测试这个,我在安装使用'Everyone'之后创建了一个Windows应用程序,以相同的方式启动进程,它运行正常。

是否有人知道为什么我无法使用其他用户上下文选择“Everyone”来访问OnAfterInstall中的文件?

1 个答案:

答案 0 :(得分:0)

最有可能当您检查所有人告诉安装程序时,它不需要提升权限,因此它不会要求它们。即使您在Windows Vista或7中以管理员身份运行,您的流程令牌也是用户的令牌,直到UAC提升您为止。您需要能够调用createprocessasuser的一组政策,这正是下面发生的事情。将所有与上述api相关的政策交给每个人,然后看看它是否有效。