[ASP] wscript.shell voert niets uit.

Pagina: 1
Acties:

Onderwerpen


  • kartoenweb
  • Registratie: December 2004
  • Laatst online: 09-09 20:02
Ik heb op een Windows 2003 Server SquidNT draaien.
d:\squid\sbin\squid.exe + de rest van de bestanden

Nu heb ik in asp een script gemaakt dat een aantal mensen sites kan toevoegen aan de blocklist.
(d:\squid\etc\denysites.dat ) dit gebeurt allemaal vanuit asp.

Om SquidNT de nieuwe lijst opniew te laten herladen voer je het volgende comando uit.
code:
1
D:\squid\sbin\squid.exe -n SquidNT -f d:\squid\etc\squid.conf -k reconfigure

Omdat ik dat niet steeds opnieuw wil intypen heb ik daar een bat bestandje van gemaakt.
code:
1
2
3
@echo off
echo hoi >>d:\log.txt
D:\squid\sbin\squid.exe -n SquidNT -f d:\squid\etc\squid.conf -k reconfigure

als je dit bat bestand rund op de console zelf werkt het bat bestand prima.


Nou wilde ik ook een script maken dat bat bestandje oproept. en dus de SquidNT de lijst opniew inleest.Eerst kreeg ik de fout geen toegang en dat soort dingen. die fout heb ik nu opgelost doormiddel van:IUSR_PROXY,Netwerkservice toe te voegen.
code:
1
2
3
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Call oScript.Run ("D:\squid\IIS_Reload.bat")
Response.Write "ok."

Nu ik de fout melding weg heb met geen toegang. Krijg ik keurig ik als Response “ok.”
dat is dus goed. Alleen mijn lijst wordt niet opnieuw geladen. Als ik in het script alleen notepad.exe of cmd.exe toe voeg. kijk ik in mijn tskmgr dan krijg ik keurig netjes cmd.exe of notepad.exe te staan. Dus lijkt het script wel te werken. Maar de D:\squid\IIS_Reload.bat doet hij niets mee. De lijst wordt niet opnieuw geladen.
Maak ik het script rechtstreeks naar de exe van Squid. Werkt die ook niet.
code:
1
2
3
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Call oScript.Run ("D:\squid\sbin\squid.exe -n SquidNT -f d:\squid\etc\squid.conf -k reconfigure ")
Response.Write "ok."

Ook heb ik op de squid.exe “ook niet-administrators mogen dit programma uitvoeren” aan staan.
Mijn vraag is dan ook. Wat vergeet ik?

  • Cascade
  • Registratie: Augustus 2006
  • Laatst online: 11:56
Je kan eens testen op wat het nou precies terug geeft.
Zoiets:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
' create shell object.
Set objWShell = Server.CreateObject("WScript.Shell")

' execute.
Set objExec = objWShell.Exec(strExec)
        
' wait for it to finish.
Do While objExec.Status = 0 
Loop

' show exit code.
Response.Write "ExitCode = " & objExec.ExitCode & vbNewLine
    
' show output.
Response.Write "Output:" & vbNewLine
Do While Not objExec.StdOut.AtEndOfStream 
    Response.Write objExec.StdOut.ReadLine() & vbNewLine
Loop


Verder zou ik je rechten goed nakijken, van de .BAT, van squid en van de bestanden waar squid op werkt. Als welke user wordt het uitgevoerd? IUSR_PROXY zeg je, weet je dat zeker? Is het niet een andere IUSR_... of IWAM_... user?

[ Voor 7% gewijzigd door Cascade op 25-09-2008 16:54 ]