Avatar billede montago Praktikant
14. december 2006 - 00:03 Der er 3 kommentarer og
1 løsning

Bruge WScript.Shell til at køre RAR.EXE

jeg prøver at eksekvere

command = "C:\Programmer\WinRAR\Rar.exe a -m5 -s -EP1 C:\myRar.rar c:\inetpub\wwwroot\Archeo.asp"

var shell = Server.CreateObject("wscript.shell")
       
Response.Write("<b>Executing command : </b>" + command + "<br>");
Response.Flush()
       
RetCode = shell.run(command,1,true);
if( RetCode != 0){
    Response.Write("<b>Errors in the command : </b>" + command + "<br><br><b>Error : </b>&nbsp;&nbsp;" + error[RetCode]);
    }   
}

men får fejlen :

___________________________
Executing command : C:\Programmer\WinRAR\Rar.exe a -m5 -s -EP1 C:\myRar.rar c:\inetpub\wwwroot\Archeo.asp
Errors in the command : C:\Programmer\WinRAR\Rar.exe a -m5 -s -EP1 C:\myRar.rar c:\inetpub\wwwroot\Archeo.asp

Error :  FATAL ERROR
___________________________

Hvis jeg køre kommandoen i CMD virker det hele fint...

*suk*
Avatar billede montago Praktikant
14. december 2006 - 00:05 #1
okay...

tænkte lige at hvis jeg skrev CMD før kommandoen, ville jeg være sikker på at der køres i CMD...

nu får jeg fejlen :
Der opstod en Microsoft JScript-kørselsfejl fejl '800a0046'

Tilladelse nægtet

/asprar.asp, linje 26
Avatar billede cpufan Juniormester
14. december 2006 - 00:09 #2
når du kører det via asp/en browser er det som anonym, (iusr_maskinnavn)

og denne har afsikkerhedsgrunde ikke love til at exekvere exe-filer eller
adgang til c: eller adgang til cmd-prompt
Avatar billede cpufan Juniormester
14. december 2006 - 00:12 #3
og de ting du prøver at sætte i gang er på serveren, ikke hos clienten
Avatar billede montago Praktikant
15. december 2006 - 00:22 #4
den endelige funktion som virker...
ved ikke om det hjalp, men jeg har rettet 2 ting:
-sat rettigheder på cmd.exe til IUSR
-sat output rar-fil til at ligge i wwwroot

    function exec(command)
    {
        var shell = Server.CreateObject("WScript.Shell")
        //Response.Write("<b>Executing command:</b> : " + command + "<br>")
        RetCode = shell.run("cmd /c "+command,0,true);
        if( RetCode != 0){
            Response.Write("<b>Errors in the command : </b>" + command + "<br><br><b>Error : </b>&nbsp;&nbsp;" + error[RetCode]+"<br>");
            return false;
        }
        return true;
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester