以管理员身份运行批处理文件 - Windows 7 - 命令"运行方式"来自网络文件系统

时间:2012-05-02 14:19:56

标签: shell batch-file cmd dos administration

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

此程序有一个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将提示“打开”“保存”选择面板,大多数用户将直接点击打开(生成无权限错误)

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

有什么建议吗?

3 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:2)

不一样。

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

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

相同

答案 2 :(得分:2)

PowerShell中有way to do this

PS> Start-Process powershell -Verb runAs