7

我需要设置程序安装程序的交付。

该程序有一个 program_installer.exe 和一个文件夹,我在创建安装程序时无法将其包含在安装程序中。

因此,当用户需要安装程序时,我会通过 MAIL 向他发送一个 BATCH 文件

@echo off
if DEFINED PROGRAMFILES(X86) (
SET TOOL_INSTALL_DIR="%PROGRAMFILES(X86)%\myfolder"
) else (
SET TOOL_INSTALL_DIR="%PROGRAMFILES%\myfolder"
)

MKDIR %TOOL_INSTALL_DIR%
copy /y \\rk0012352\Public\lkh5iwwh.m4s %TOOL_INSTALL_DIR%


START %PROGRAMFILES%\program_installer.exe

问题是,当用户执行 BATCH 并运行 COPY 命令时,在 Windows 7 上该命令将失败,因为他没有 ADMIN 权限。

如何使该复制命令在 XP 和 7 上都以管理员身份运行?

你可能会说:当用户收到带有 INSTALL.BAT 的 EMAIl 时,他不能点击 RUN AS ADMINISTRATOR 吗?

不幸的是,答案是他们中的大多数人不会这样做,只是抱怨它不起作用。而且Outlook等很多邮件客户端会提示“打开”“保存”选择面板,大部分用户会直接点击打开(产生无权限错误)

“运行方式”命令需要指定机器的管理员名称,我不知道如何在每台计算机上调用管理员用户。

有什么建议吗?

4

3 回答 3

7

这有点棘手,但可以做到。

首先,您必须(从批处理文件)知道用户是否是管理员。如果是,那么您可以简单地继续安装。如果不是,您可以运行另一个 cmd.exe 实例以管理员身份运行批处理文件(使用runas命令)。

要检测用户是否是管理员,请查看这篇文章:http ://www.tomshardware.co.uk/forum/169421-36-determine-batch-file-user-administrator (有完整的代码来提升批次本身也是如此)。

于 2012-05-02T14:26:26.497 回答
4

不是一回事。

如果您在管理员组中,则提升您自己的权限范围与仅在您的范围内运行是有区别的。

简单地使用runas /user:username@domain.com program.exe似乎与右键单击然后选择“以管理员身份运行”不同。

于 2014-03-14T14:01:21.110 回答
2

在 PowerShell 中有一种方法可以做到这一点:

PS> Start-Process powershell -Verb runAs
于 2014-09-17T09:53:48.773 回答