我编写了一个客户将在Windows Server上安装的软件,我编写了一个安装指南的HTML页面。如何在HTML页面上创建一个链接,以管理员身份调用我的.bat脚本。 .bat脚本将处理客户的安装。 HTML页面将作为文件运行,即没有任何服务器(包括本地主机)。 .bat脚本,html页面和二进制文件将位于同一文件夹中。该文件夹可以位于Windows服务器上的任何位置(我不知道客户将放置文件夹的位置)。
答案 0 :(得分:0)
这样做的一种方法是使用AJAX和脚本的组合来实现这一目标。
对于这个例子,我将假设使用jQuery和PHP(因为它们非常常见)。
jQuery只是缩短了,大多数/所有语言都可以使用此功能。
假设你有一个这样的页面:
<html>
<body>
<a id="foo" href="#">Install</a>
<script src="install.js"></script>
</body>
</html>
你的javascript看起来像这样:
$("#foo").on("click", function(){
$.post('install.php');
});
在install.php文件中,您可以这样:
<?php
exec("mybatch.bat");
或
<?php
exec("cmd.exe /c test.bat");
请注意,您想要做的事情存在安全问题。
只有在您确定环境安全的情况下才能执行此操作。
如果没有客户端计算机的合作,这是一件非常困难的事情。
您或多或少必须以管理员身份运行PHP或本地安装的任何语言。
此外,如果从POST请求运行批处理文件是个坏主意,以管理员身份运行批处理文件会更糟。避免这种情况。
答案 1 :(得分:0)
在Internet Explorer中:
file://mydirectory/myfolder/mybatchfile.bat
大多数浏览器不允许此功能,因为它会给网页上的链接带来巨大的安全风险,从而无法运行本地文件。他们中的大多数都具有禁用该安全功能的扩展。 I haven't tested any of them to see if they work, however. 但是,即使发生这种情况,.bat运行也会像下载一样发生。浏览器将“下载”.bat文件,然后让用户有机会保存或运行它。除非批处理文件在文件本身内进行管理提升,否则用户必须以管理员身份手动运行它。
请记住,这些保护措施存在是有原因的,绕过它们并不是一个好主意。但是,在一天结束时,没有办法让浏览器自己执行该代码。 (谢天谢地!)有更好的方法来完成这些任务。
如果您想提供有关您要完成的工作的更多详细信息,我相信我们可以更安全地做您想做的事情。