Click here to Skip to main content
15,887,746 members
Articles / Programming Languages / ASP
Article

Registering DLL's in a Remote Host

Rate me:
Please Sign up or sign in to vote.
3.44/5 (6 votes)
30 Jul 2002 80K   29   6
Registering DLL's has always been a nightmare to all the programmers who have to work with remote WebServers.

Introduction

Registering DLL's has always been a nightmare to all the programmers who have to work with remote WebServers.  Its even horrible with servers having customized security settings. Every time the the Server administrator have to be pinged to register / unregister DLLs.

An easy work around to this problem is to use ASP pages to register / unregister the DLLs. The key to this operation is to use the RUN method of the Windows Scripting Host WshShell class.

Following is a simple asp page using run method to register Dlls.

VBScript
<%
Dim strPageName
strPageName = "Reg.asp"
If Request.Form("SUBMIT") = "" Then
    Response.write "<CENTER><FORM ACTION=""" & strPageName & """ METHOD=POST>"
    Response.write "<INPUT TYPE=TEXT NAME=FILEPATH SIZE=120>Full Path/Filename "
    Response.write "to DLL to be registered/un registerd<BR>"
    Response.write "<INPUT TYPE=CHECKBOX NAME=ACTIONTYPE CHECKED>Check to "
    Response.write "Register; Uncheck to Unregister<BR>"
    Response.write "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT></CENTER>"
    Response.write "</FORM>"
Else
    Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
    strPath = objFileSystem.GetSpecialFolder(1) & "\REGSVR32.EXE /s "
    Set objWshShell = CreateObject("WScript.Shell")
    strRun = "CMD /C " & strPath & " /u "
    If Request.Form("ACTIONTYPE")="on" Then strRun = "CMD /C " & strPath
    strReturn = objWshShell.Run(strRun & Request.Form("FILEPATH"), 1, True)  
    Set objFileSystem = Nothing
    Set objWshShell = Nothing
End If
%>

Copy the entire script above including the <% %> script delimiters, and paste it into Notepad and save it as "Reg.asp" on your server Now the only thing you have to know is the drive letter, path and name of the DLL.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralDoesnt work Pin
sarinb12-Sep-06 1:01
sarinb12-Sep-06 1:01 
GeneralASP Pin
suman_sunil5-Feb-04 4:24
suman_sunil5-Feb-04 4:24 
GeneralGreat Script Pin
Anonymous29-Aug-02 12:05
Anonymous29-Aug-02 12:05 
GeneralAnother security bug!!! Pin
Daniel Turini31-Jul-02 5:27
Daniel Turini31-Jul-02 5:27 
GeneralBig, big security leak! Pin
Daniel Lohmann31-Jul-02 1:25
Daniel Lohmann31-Jul-02 1:25 
This looks like the ideal way to establish a really, really big hole on your server Dead | X| . Your nifty ASP page gives everybody the opportunity to run anything on your machine, because the command line is executed via CMD.exe (simple command queueing would do it).

But even without this problem I don't like the idea than anybody is allowed to register what he want's on the server! A lot of well known and probably present ActiveX components have big security problems and the webmaster does well not to install them. But using your technique a hacker could simply try some common pathes for also common components and install them. Afterwards s/he could utilize the security leak of the component.

Sorry, but this really sucks!

--

Daniel Lohmann

http://www.losoft.de
GeneralSecurity BUG!!!!!!! Pin
Daniel Turini30-Jul-02 23:04
Daniel Turini30-Jul-02 23:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.