【问题标题】:Run batch file as admin, hidden, from inno setup从 inno setup 以管理员身份运行批处理文件,隐藏
【发布时间】:2018-12-04 10:56:38
【问题描述】:

我有一个 Inno Setup 安装,它在完成后成功运行了一个批处理文件。批处理请求管理员权限,获取它们并执行操作。

我被要求完全隐藏提示窗口,所以我在 Inno Setup 中添加了“标志:runhidden”,并在批处理中添加了 @echo off 和 >nul 2>nul。但是批处理还是会闪一个提示窗口,原因是这样的:

if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & goto 
batch & exit /b)

EXIT /b

:batch
---MyCodeHere---

这段代码不是我自己写的,也不是批处理编程方面的专家,但我很确定这些行会打开一个具有管理员权限的新提示,这就是提示闪烁。

有谁知道这个问题有没有解决办法?也许一些标志要添加到“powershell start”,或者另一种完全不同的方式来完成这项任务。

提前谢谢大家

【问题讨论】:

  • 也许只是使用 vbs 将其隐藏起来,包括任何闪烁。 Set MyScript = CreateObject("WScript.Shell") MyScript.Run "D:\SomeDir\scriptname.cmd", 0, False 然后启动 vbs 脚本。

标签: batch-file permissions inno-setup admin prompt


【解决方案1】:

不要让批处理文件要求管理员权限。

立即以管理员权限运行批处理文件:
Run process (net.exe or sc.exe) with Administrator privileges at the end of an installation in Inno Setup

[Run]
Filename: "{app}\my.bat"; Description: "Run my batch file"; \
    Flags: postinstall runascurrentuser runhidden

【讨论】:

  • 仍然不知道:事实是这个应用程序必须安装在用户只能使用共享桌面的系统上,我们不知道 100% 有哪些权限可用。可能无论如何都会由系统管理员安装,但我们仍在等待该环境中的测试。在我的本地机器上工作,但我是管理员。
  • 你设置PrivilegesRequired指令了吗? + 如果用户没有管理员权限,批处理文件中的提升代码也无济于事。
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2012-10-06
  • 2013-05-29
  • 2013-09-16
  • 2015-05-21
  • 2015-02-09
  • 1970-01-01
相关资源
最近更新 更多