我已经设置了一个基本的index.asp页面,它允许我输入一个IP地址然后触发一个批处理文件,该文件将该IP添加到本地安全策略筛选器列表中。命令my bat文件运行:
netsh ipsec static add filter filterlist="Blocked IPs" srcaddr=%1 dstaddr=any
如果我从命令行手动触发批处理文件,它可以正常工作并添加IP。但是,如果我从网页触发它没有添加到筛选器列表...我测试通过添加“mkdir c:\%1”作为批处理文件中的第一行,它成功地创建了一个名为IP地址的文件夹我已经验证它正确触发并接收变量。另一件事我注意到,如果我使用相同的命令,但指定它可以工作的远程计算机。
netsh -r servername -u username -p password ipsec static add filter filterlist="Blocked IPs" srcaddr=%1 dstaddr=any
它会将它应用到远程计算机的过滤器列表中,所以我尝试只指向localhost甚至是本地服务器名称& IP,但没有区别。
以下是.asp页面的代码
<%
if (Request.QueryString("ipaddress") <> "") then
Response.Write ("start")
Dim wshell, intReturn
set wshell = server.createobject("wscript.shell")
intReturn = wshell.run("C:\inetpub\test.bat " & Request.QueryString("ipaddress"), 0, True)
Response.Write( intReturn )
set wshell = nothing
response.write Request.querystring("ipaddress")
Response.Write ("end")
else
%>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<center>
<form action="index.asp" method="get">
<br/>
<input name="ipaddress" type="text">
<br/><br/>
<input type="submit">
<form>
</center>
</body>
</html>
<% end if %>