Shell 以管理员身份运行批处理文件-Windows 7-命令;作为“运行”;从网络文件系统

Shell 以管理员身份运行批处理文件-Windows 7-命令;作为“运行”;从网络文件系统,shell,batch-file,cmd,dos,administration,Shell,Batch File,Cmd,Dos,Administration,我需要设置程序安装程序的交付 此程序有一个program_installer.exe和一个文件夹,我在创建安装程序时无法将其包含在安装程序中 因此,当用户需要安装程序时,我会通过邮件向他发送一个批处理文件 @echo off if DEFINED PROGRAMFILES(X86) ( SET TOOL_INSTALL_DIR="%PROGRAMFILES(X86)%\myfolder" ) else ( SET TOOL_INSTALL_DIR="%PROGRAMFILES%\myfolder

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

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

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

@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
问题是,当用户执行批处理并运行复制命令时,在windows 7上,该命令将失败,因为他没有管理员权限

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

您可能会说:当用户收到带有INSTALL.BAT的电子邮件时,他不能单击“以管理员身份运行”吗

不幸的是,他们中的大多数人不会这样做,只是抱怨这样做不起作用。此外,许多电子邮件客户端(如Outlook)将提示“打开”“保存”选择面板,大多数用户将直接单击“打开”(生成无权限错误)

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


有什么建议吗?

这有点棘手,但可以做到

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

要检测用户是否是管理员,请查看以下帖子:(还有提升批处理本身的完整代码)。

不一样

如果您在administrators组中,则提升您自己的权限范围和仅在您的范围内运行是有区别的

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

PowerShell中有一个:

PS> Start-Process powershell -Verb runAs

您还可以使用这个自动提升自身的批处理脚本:stackoverflow.com/a/12264592/1016343@Matt url@Kiquenet的可能副本:两者都指向同一个问题:这肯定不是同一件事。“以管理员身份运行”不会提示输入密码,而“运行方式用户:管理员”会提示输入密码。嗯,如果您可以右键单击并以管理员身份运行,运行方式有什么意义?