我有以下HTA文件:
<html>
<head>
<title>test</title>
<SCRIPT Language="VBScript">
createobject("Shell.Application").ShellExecute "C:\windows\system32\cmd.exe", "/k powercfg /batteryreport", "", "runas", 1
</SCRIPT>
<body>
</body>
</html>当我运行它时,它会显示一个UAC提示符,其中包含“是”/“否”按钮,来自"Windows命令处理器“。单击“是”后,会打开一个命令提示符窗口,标题为"Administrator: C:\WINDOWS\SysWOW64\cmd.exe“。但是,命令失败,说明“无法加载电源效率诊断库(energy.dll)”。
,我确信打开的命令窗口具有管理权限,原因如下:
它显示了一个打开CMD窗口的UAC框-- permissions
net session >nul 2>&1 && echo Success || echo Failure。(此命令检查管理权限;我在对这篇文章的评论中发现:https://superuser.com/a/667745因此,,我想知道为什么这个命令不能工作,如果可能的话,我如何使它工作。
我注意到的另一件有趣的事情是,从该HTA文件中提取第5行(createobject("Shell.Application").ShellExecute "C:\windows\system32\cmd.exe", "/k powercfg /batteryreport", "", "runas", 1)并将其放入一个空白的.VBS文件实际上会导致不同的结果。使用此方法生成的命令窗口的标题不同("Administrator: C:\Windows\System32\cmd.exe"),由此产生的错误也不同。上面写着:
启用跟踪60秒..。观察系统行为..。无法打开电源效率诊断ETW会话。ETW会话已经在使用中。确保当前没有其他PowerCfg实例正在运行。
有没有人对这个问题有潜在的解释或解决办法?谢谢。
发布于 2022-01-24 22:32:23
我相信我发现了这个问题。https://stackoverflow.com/a/10989048/18020746这个问题把我引向了正确的方向。
与上述链接应答状态一样,64位MSHTA不能运行32位文件(如powercfg.exe ).但是,当在命令提示符中键入START C:\Windows\System32\mshta.exe [path to the HTA file]通过32位版本的MSHTA运行HTA文件时,powercfg命令可以工作。
https://stackoverflow.com/questions/70841191
复制相似问题