如何以提升的权限运行批处理文件命令?

哈兹马德

我正在编写一个批处理文件,该文件将在用户之间分发。我需要以提升的权限运行一些命令。我最初的解决方案是使用:

runas /noprofile /user:Administrator SOME_COMMAND  

但是,许多机器(包括我的机器)都没有激活隐藏的管理员帐户,因此没有设置管理员密码。我也不能指定其他用户名,因为不同的计算机将具有不同的用户。是否可以通过批处理文件复制“右键单击->以管理员身份运行”操作?我不介意弹出提示,只是不想让用户显式右键单击并以管理员身份运行。

您可以利用每个现代Windows系统中都存在的PowerShell。

将需要提升的命令拆分为单独的批处理文件,例如elevated.bat然后,当需要运行它们时,请在非高架脚本中使用此命令:

powershell -command "Start-Process elevated.bat -Verb runas"

-Verb runas部分是引起高程提示的原因。如果原始批处理文件已经以admin身份运行,或者如果关闭了UAC提示,则新文件将被提升而没有提示。

请注意,提升的批处理程序的当前目录将以开头System32如果这是一个问题,则可以使用此替代版本来使它在与非提升脚本相同的目录中启动:

powershell -command "Start-Process cmd -ArgumentList '/c cd /d %CD% && elevated.bat' -Verb runas"

这将导致新cmd实例首先cd进入未提升的提示%CD%变量提供的目录中,然后执行所需的批处理文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用提升的权限从批处理文件运行 Powershell 脚本?

通过具有提升权限的批处理文件运行 Powershell 脚本

如何从批处理文件中使用 Runas 命令运行批处理文件

批处理文件:删除提升的特权(以原始用户身份运行命令)

如何从批处理文件运行命令并立即返回?

在批处理文件中运行命令

如果我知道密码,如何运行提升的批处理文件?

使用“批处理”命令运行批处理文件

Windows 批处理文件以提升的权限启动另一个批处理

Windows 批处理文件:如何运行多个批处理命令?

从批处理文件运行的reg命令是否需要管理员权限?

如何从Powershell运行批处理文件?

如何运行该批处理文件?

如何自动提升批处理文件,以便在需要时从UAC管理员权限请求?

如何以管理员身份和批处理文件中的参数运行PowerShell?

Windows启动-如何以管理员身份从批处理文件运行程序

批处理文件需要管理员权限才能运行,如何取消此操作?

如何从Windows中的批处理文件运行多个命令(每个命令都来自新终端)

在W10批处理文件中,提升运行时如何保留当前的%username%?

具有提升的权限的批处理文件不起作用?

通过拖放到批处理文件上运行命令

从批处理文件运行Grails命令,直到成功

内部运行命令完成时,批处理文件退出

使用批处理文件运行 ant 命令

berks 后的命令不在批处理文件中运行

异步运行Windows批处理文件命令

在 Windows 批处理文件中运行 sbt 命令

在批处理文件中运行powershell命令

在批处理文件中运行多个命令