2013-02-14 2 views
0

Мне нужна помощь в выполнении командного файла с клиента (доступ через HTTP-интрасеть выполняется с использованием ASP Classic).Выполнение пакетного файла asp classic

OS используется:

  • Client (Windows XP) - Вот где пользователь будет иметь доступ к странице HTML.
  • Сервер (Windows server 2003) - Здесь создается папка, включая командный файл. Это также, где страницы ASP и HTML-страницы хранятся и проходят через IIS

Сценарий:

Пользователь будет доступ к странице 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> 

После заполнения форм будут выполняться следующие коды.
-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 

%> 

ошибки:

«Нет были отображены ошибки. "

-Есть уже предоставить IUSR, IWAM, IIS_WPG включая NETWORK SERVICE полного разрешения на корневую папку из-за отчаяния .. :(

Проблема:
Пакетный файл не выполняется или, может быть, не читается (его, как пакетный файл, не открывается, чтобы выполнить его содержимое) .Если я запустил его вручную или попал в командный файл, он отлично работает. Что, по-видимому, проблема? Это на моем ASP?

- Я уже отслеживал процесс или файл, к которому клиент обращается с помощью приложения «Filemon», и все результаты cess из w3wp.exe и cmd.exe. -Я пробовал создать vbscript для выполнения этой партии, а vbscript вызывается asp.
Все еще не повезло. :(

+0

Вам нужны разрешения «низкого уровня» здесь, а не только в одной папке. Попробуйте настроить IIS для запуска учетной записи администратора, или другой вариант выберите «Интегрированная проверка подлинности Windows», если он подключен через сеть. –

ответ

0

Из моего опыта WScript.Shell только действительно работал с IIS 5, я мог бы предложить другой способ выполнить пакетный файл:

Если у вас есть доступ к SQL:

How can I run sqlcmd.exe from an ASP page?

Если вы можете зарегистрировать COM:

http://www.shotdev.com/asp/asp-run-execute-exe/asp-execute-exe-wscript-shell/

Источник: Trying to launch photoshop with scripting

0

Другой вариант - особенно если вам нужно запустить эти сценарии под другим контекстом безопасности, чем IIS для доступа к папке/общему доступу, выполнения команд с привилегиями администратора и т. Д.- настроить Запланированную задачу Windows для запуска скрипта (без какого-либо связанного расписания, если он не нужен), а затем вызвать эту задачу со страницы ASP.

Run a scheduled task from an ASP/IIS page

Это требует, предоставляющего доступа к файловой системе к IUSR учетной записи на запланированный файл задания.