【发布时间】:2016-12-03 05:35:36
【问题描述】:
我想推导出一种简单可靠的方法来自动提升正在运行的批处理,而无需使用其他线程中提出的额外 VBS 文件或提升的快捷方式。通过 javascript 从批处理中调用 UAC 对话框可确保简短的简单代码。
当在对话框中选择“是”时,以下脚本会自动将用户正确提升为管理员权限,但会弹出错误对话框(在 Cmd 窗口之外)“Windows 找不到 'test.bat' ”。可能是因为文件路径包含空格吗?如何修复代码或抑制此错误弹出?
@echo off
:: test admin rights
>nul 2>&1 net file
echo '%errorlevel%'
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute("%~nx0", '', '', 'runas', 1);close();"
:: test admin rights
>nul 2>&1 net file
echo '%errorlevel%'
if !errorlevel! equ 0 echo Hello >%temp%\tst.txt
exit /b
【问题讨论】:
标签: javascript batch-file uac shellexecute hybrid