【发布时间】:2014-05-30 23:11:43
【问题描述】:
背景: 安装我们的应用程序需要管理员权限。 安装程序完成后,我们从安装程序中调用新安装的程序,它会在管理窗口中打开。 (这至少是它在 Windows 上的工作方式) 然后当我们点击图标运行程序时,它会打开另一个窗口(因此应用程序的两个实例正在运行——这不是一件好事。)
是否可以从批处理文件中同时运行安装程序和应用程序,以便只有在安装程序关闭后,应用程序才会在非管理窗口中打开? (在我们的应用程序中,安装程序要求管理员权限,因此批处理文件不应该这样做。)
我尝试使用“Everything.exe”(一个需要管理员权限的优秀应用)对此进行试验。
REM Test batchfile for opening two apps
"C:\Program Files (x86)\Everything\Everything.exe"
Notepad.exe
不幸的是,一旦将管理员权限授予“Everything.exe”,所有内容都会在管理员窗口中加载,而记事本则在非管理员窗口中加载。
有没有办法在安装程序退出后在非管理员窗口中打开应用程序?"
【问题讨论】:
-
批量使用
start /wait,但是批量真的是正确的解决方案吗? -
没有可靠的方法。对于管理员,您可以从令牌中删除额外的权限,但对于在管理员令牌下运行的非管理员,它将不起作用。但是这些都不适用于批处理文件。这解释了它并试图给你一个 C 中的过程来帮助你。 blogs.msdn.com/b/oldnewthing/archive/2013/11/18/10468726.aspx
-
也许 runas 命令可以帮助您解决问题。鲁纳斯 /?
-
Hanno Binder,我刚刚尝试了您的建议,即使用“如何等待进程终止以批量执行另一个进程 –” 不幸的是它没有奏效。我相信原因是第一个进程在管理窗口中运行,而第二个没有。第二个在非管理员窗口中打开,无需等待第一个存在。
标签: windows batch-file installation admin