2013-02-14 271 views
0

我需要帮助,从客户端执行批处理文件(通过HTTP访问内网使用执行已ASP经典)。使用批处理文件执行ASP经典

OS:

  • 客户端(Windows XP中) - 这里是用户将访问HTML页面。
  • 服务器(Windows Server 2003) - 这里是正在创建指定文件夹,包括批处理文件。这也是ASP页和HTML页存储,并通过IIS

情况下运行:

用户将访问链接到一个asp页面的HTML页面....

HTML代码:

<html> 
<body> 
<form method="GET" action="default.asp"> 
Name<input type="text" name="firstname"/> 
Uname<input type="text" name="username"/> 
Fulname<input type="text" name="fullname"/> 
Pass<input type="text" name="password"/> 
Qwarning<input type="text" name="qwarning"/> 
Qlimit<input type="text" name="qlimit"/> 
<input id="submit" type="submit" value= "submit" /> 
</form> 
</body> 
</html> 

填写表格后,将执行以下asp代码。
-The下面的代码将创建一个文件夹,并创建一个批处理文件,将创建一个用户帐户,并设置其帐户权限

ASP代码:

<% 
'Folder Creation 
dim fs 
Dim name,uname,fulname,pass,qlimit,qwarning 

name = Request.QueryString("firstname") 
uname = Request.QueryString("username") 
fulname = Request.QueryString("fullname") 
pass = Request.QueryString("password") 
qlimit = Request.QueryString("qlimit") 
qwarning = Request.QueryString("qwarning") 


'Batch File Creation 
set fs=Server.CreateObject("Scripting.FileSystemObject") 
if NOT fs.FolderExists("c:\dept\" & name) Then 
fs.Createfolder("c:\dept\" & name) 
response.write name &" successfully created" 
else 
response.write name &" is already exist!" 

end if 
set fs=nothing 

dim fsc,cfile 
set fsc=Server.CreateObject("Scripting.FileSystemObject") 
set cfile=fsc.CreateTextFile("c:\dept\" & name & ".bat") 

'User Creation 
cfile.writeline("echo off") 
cfile.writeline("cd\") 
cfile.writeline("Net User " & uname & " " & pass & " /add /comment:""Created by Mystic System"" /expires:never /fullname:""" & fulname & """ /passwordchg:no") 
cfile.writeline("WMIC USERACCOUNT WHERE ""Name='" & uname & "'"" SET PasswordExpires=False") 

'USER QUOTA 
cfile.writeline("fsutil quota modify c: 104857600 209715200 WINDOWS-GDKLDNY\" & uname) 


'Creation OF Permision to folder 
cfile.WriteLine("cacls c:\dept\" & name & " /e /P Administrator:F") 
cfile.WriteLine("cacls c:\dept\" & name & " /e /P " & uname & ":R") 
cfile.WriteLine("cacls c:\dept\" & name & " /e /G " & uname & ":W") 
cfile.WriteLine("del /a " & "c:\dept\" & name & ".bat") 

cfile.close 

set cfile=nothing 
set fsc=nothing 
set perm=nothing 

set wshell = CreateObject("WScript.Shell") 
wshell.run "c:\dept\" & name & ".bat" 
set wshell = nothing 

%> 

错误:

“不错误已被显示。“

-I已经授予IUSR,IWAM,IIS_WPG包括由于绝望网络服务完全权限的根文件夹.. :(

问题:
批处理文件不执行或可能没有被读取(其像批处理文件是不开放执行其内容)。如果我手动运行,或打在它运行完美的批处理文件。什么似乎是问题的输入?它是不是在我的ASP?

-I've已经监视的进程或文件正在由客户端使用“Filemon的”应用程序访问,结果都是SUC从w3wp.exe和cmd.exe中删除。 -I've尝试创建一个VBScript来执行批次和VBScript是由ASP调用。
仍然没有运气。 :(

+0

此处需要“低级别”权限,而不仅限于单个文件夹。尝试设置IIS以运行管理员帐户,或者如果通过网络连接,则选择其他选项“集成Windows身份验证”。 – 2013-02-17 08:22:17

回答

0

另一种选择 - 特别是如果你需要运行除了IIS文件夹/共享访问不同的安全环境下,这些脚本,运行管理权限的命令等。 - 设置一个Windows Scheduled Task来运行该脚本(如果不需要任何关联的日程安排,则不需要),然后从ASP页面调用该任务。

Run a scheduled task from an ASP/IIS page

它要求赋予的文件系统访问IUSR帐户的计划任务文件。