如何以管理员权限从另一个批处理文件开始/调用批处理文件,从而不会像以下错误一样给我报错?
访问被拒绝错误代码5
这里是我想要的东西的类似示例。
echo PLEASE TYPE YOUR USERNAME AND PASSWORD IN THE FIELDS BELOW.
echo.
echo.
echo.
echo.
set /p u=Username:
echo.
set /p p=Password:
start next.bat %u% %p%
如何以管理员权限从另一个批处理文件开始/调用批处理文件,从而不会像以下错误一样给我报错?
访问被拒绝错误代码5
这里是我想要的东西的类似示例。
echo PLEASE TYPE YOUR USERNAME AND PASSWORD IN THE FIELDS BELOW.
echo.
echo.
echo.
echo.
set /p u=Username:
echo.
set /p p=Password:
start next.bat %u% %p%
右键单击 > 以管理员身份运行
,尽管我更喜欢james的方法(使用vbScript),但如果你不想使用另一个vbScript文件,只想获得单击批处理文件并接受以管理员身份运行的好处(注意你少了一次右键单击和左键单击),我建议你这样做:从你的批处理文件创建一个快捷方式,右键单击快捷方式 > 属性 > 快捷方式选项卡 > 高级,现在勾选“以管理员身份运行”复选框。每次你从快捷方式执行它时,你只需要点击一次来接受以管理员权限运行它。/savecred
选项——如果你只是在单台计算机上运行任务,那么这没问题。第一次会要求输入密码,但之后就不需要了(尽管每次使用时仍需使用/savecred
选项)。我有一种感觉,使用这种方法可能存在巨大的安全漏洞。但既然看起来这是针对你自己的机器,那么在你的批处理中可以使用这个方法:runas /user:computername\username /savecred yourcommand.exe
SCHTASKS /Run /TN yourtaskname
在批处理文件本身中,没有办法以管理员身份运行,但是如果您从.VBS文件中启动批处理文件,则可以指定“runas”参数。
set shell=CreateObject("Shell.Application")
shell.ShellExecute "your_batch_file.bat",,"C:\path\to\thedirectory", "runas", 0
set shell=nothing
将批处理文件放入Windows目录中,它将作为管理员运行。我自己尝试过这个方法,它有效。
C:\Windows\batch_file.bat
它应该像这样工作。
我其实是加入这个网站来回答问题的,迄今为止最简单的方法是创建一个指向要运行程序的快捷方式,然后将该快捷方式设置为管理员运行并只需从批处理文件中调用该快捷方式即可。这将使用快捷方式中指定的设置运行,您可以将此快捷方式放在与批处理文件相同的文件夹中或仅从开始菜单中调用它。
例如: "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Folder\Shortcut Name.lnk"
@cmd,我发布了一个示例(如何从批处理脚本中测试用户的有效权限?),用ShellExecute
和elevated
权限运行另一个bat文件
(仅在需要时)。请查看它是否符合您的要求和需求。如果不是,请告诉我,我们可以调整您的脚本使其正常工作。
祝好运
右键 -> 以管理员身份运行。
我认为微软已经尽力防止批处理脚本自行获取管理特权。
runas
命令。 - user330315runas /?
,但语法没有显示如何在不提示的情况下提供密码。 - cmd