知识大全 以在ASP环境下调用的运行CMD命令的VB组件

Posted 命令

篇首语:书到用时方恨少,事非经过不知难。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 以在ASP环境下调用的运行CMD命令的VB组件相关的知识,希望对你有一定的参考价值。

以在ASP环境下调用的运行CMD命令的VB组件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  有时我们在管理服务器时为了安全起见会禁用Windows Scripting Host 这样能防止某些不法用户利用WSH生成一个WebShell 对服务器造成很大的安全隐患 但如果我们又想禁用WSH 又想使用自己的WebShell用于服务器的管理怎么办呢?这里介绍了一种实现ASP中运行CMD并显示结果的组件编程 希望对大家能有所帮助     首先我们新建一个ActiveDLL工程 命名为ASPCMD 新建的类命名为CMDShell 在 Project 的 Referenct 中添加一个引用 Microsoft Active Server Pages Object Library     然后我们的思路是使用Window API ShellExecute调用cmd exe 将运行的结果保存到一个临时文本文件 然后读出这个文件的内容显示出来      以下是工程ASPCMD的类CMDShell cls的代码   Option Explicit  Dim rp As Response  Dim rq As Request  Dim ap As Application  Dim sr As Server  Dim sn As Session  Private Declare Sub Sleep Lib kernel (ByVal dwMilliseconds As Long)  Private Declare Function ShellExecute Lib shell dll Alias ShellExecuteA (ByVal hWnd As Long ByVal lpOperation As String ByVal lpFile As String ByVal lpParameters As String ByVal lpDirectory As String ByVal nShowCmd As Long) As Long      Private Sub ShellEx(ByVal sLocation As String ByVal sPara As String Optional MaxedForm As Boolean = False)  On Error GoTo errhandle:  Dim lR As Long  Dim Style As Long  Dim hWnd As Long  If MaxedForm Then  Style = vbMaximizedFocus  Else  Style = vbNormalFocus  End If    lR = ShellExecute(hWnd open sLocation sPara Style)  If (lR < ) Or (lR > ) Then   success  Else  rp Write Error Occered when starting the program & sLocation  End If  errhandle:  rp Write Error: & Err Description  End Sub    Public Sub OnStartPage(ByVal mysc As ScriptingContext)  Set rp = mysc Response  Set rq = mysc Request  Set sr = mysc Server  Set ap = mysc Application  Set sn = mysc Session  End Sub    Public Sub OnEndPage()  Set rp = Nothing  Set rq = Nothing  Set sr = Nothing  Set ap = Nothing  Set sn = Nothing  End Sub    Private Function FileExists(Filename As String) As Boolean  Dim i  As Integer  On Error Resume Next  i = Len(Dir$(Filename))  If Err Or i = Then FileExists = False Else FileExists = True  End Function    Private Function IsOpen(Filename As String) As Boolean  Dim fFile As Integer  Dim msg As String  fFile = FreeFile()  On Error GoTo ErrOpen  Open Filename For Binary Lock Read Write As fFile  Close fFile  Exit Function  ErrOpen:  If Err Number <> Then  msg = Error # & Str(Err Number) & was generated by _  & Err Source & Chr( ) & Err Description  Else  IsOpen = True  End If  End Function    Public Sub Exec (ByVal strCmd As String)  On Error GoTo errhandle:  Dim myTimer As Integer  myTimer =     Dim strOut As String  Dim strFname As String  //生成一个临时文件  If Len(App Path) = Then  strFname = App Path & lp txt   Else  strFname = App Path & \\lp txt   End If  //如果在运行前文件已存在则删除之  If FileExists(strFname) Then  Kill strFname  End If    //运行行用户的CMD命令 并将结果输出到临时文件中  //注意cmd exe的/c参数是指运行完一个命令后马上结束会话状态 等同于在windows的run中输入的CMD命令   Dim strPara As String  strPara = /c & strCmd & > & strFname  ShellEx cmd exe strPara  //等待生成输出文件  Do While Not FileExists(strFname)  Sleep   DoEvents  myTimer = myTimer +   If myTimer = Then  Exit Do  End If  Loop  myTimer =   //等待文件输出完毕  Do While IsOpen(strFname)  Sleep   DoEvents  myTimer = myTimer +   If myTimer = Then  Exit Do  End If  Loop    //显示输出文件的内容  Open strFname For Input As #   Do While Not EOF( )  Line Input # strOut  rp Write strOut & vbCrLf  Loop  Close #   Sleep   //删除临时文件  Kill strFname  Exit Sub  errhandle:  rp Write error occured: & Err Description  End Sub    生成ASPCMD dll 使用regsvr aspcmd dll注册组件     以下是调用该DLL的一个ASP程序例子     <%@LANGUAGE= VBSCRIPT %>  <style type= text/css >  <!    singleborder   border: px solid;  background color: # ;  font family: Arial Helvetica sans serif;  color: #FFFFFF;     noborder   border: px none;  background color: # ;  font family: Arial Helvetica sans serif;  color: #FFFFFF;    bodybackground color: # ;SCROLLBAR FACE COLOR: # ; FONT SIZE: px; SCROLLBAR HIGHLIGHT COLOR: # ; SCROLLBAR SHADOW COLOR: # ; SCROLLBAR DLIGHT COLOR: # ; SCROLLBAR ARROW COLOR: # ; SCROLLBAR TRACK COLOR: # ; SCROLLBAR DARKSHADOW COLOR: #   font family: Fixedsys;  font size: pt   >  </style>  <form action= method= post >  <input name= cmd class= singleborder value= <%=request form( cmd )%> size= >  <input type= submit class= singleborder value= EXECUTE >  </form>  <%  if request form( cmd )<> then  set testme=server createobject( aspcmd cmdshell )  %>  <div class= noborder ><%=request Form( cmd )%></div><br>  <textarea cols= rows= class= noborder >  <%=testme exec (request form( cmd ))%></textarea>    <% set testme=nothing  end if  %>    以下是运行Ipconfig /all的结果     Windows IP Configuration    Host Name : ibm wrk   Primary DNS Suffix  :  Node Type : Broadcast  IP Routing Enabled : No  WINS Proxy Enabled : No    Ethernet adapter 本地连接:    Connection specific DNS Suffix  :  Description : Intel(R) PRO/ VM Neork Connection  Physical Address : BD D EB  DHCP Enabled : No  IP Address :   Subnet Mask :   Default Gateway :   DNS Servers :          cha138/Article/program/net/201311/11821

相关参考

知识大全 asp.net源程序编译为dll文件并调用过程

  使用csc命令将cs文件编译成dll的过程很多时候我们需要将cs文件单独编译成dll文件 操作如下:打开命令窗口>输入cmd到控制台>cd C:WINDOWSMic

知识大全 asp调用c#编制的com组件实例

 新建类库MyTestDLL  右击项目“MyTestDLL”》属性》生成》勾选“为互操作注册”  打开 AssemblyInfocs&nb

知识大全 VB Shell调用后 等待程序运行结束

VBShell调用后等待程序运行结束  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    Priv

知识大全 cmd运行php

  打开命令提示符cmdexe  E:wampbinphpphp>phpexeaphp  是传参数  获取  if($argv[])  $_GET[id]=$argv[];    echo$id

知识大全 Java中如何调用cmd压缩文件

Java中如何调用cmd压缩文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天在做一个ja

知识大全 cmd命令行模式

  Oracle数据导入导出imp/exp就相当于oracle数据还原与备份exp命令可以把数据从远程数据库服务器导出到本地的dmp文件imp命令可以把dmp文件从本地导入到远处的数据库服务器中利用这

知识大全 win7系统怎么用dos命令查看日期和修改日期

win7系统怎么用dos命令查看日期和修改日期1、在键盘上按“WIN+R”组合键,打开运行界面,输入“CMD”命令,打开命令提示符界面。如图1所示图1输入“CMD”命令2、在命令提示符界面中,输入“d

知识大全 不刷新页面的情况下调用ASP.NET

不刷新页面的情况下调用ASP.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RS技术的一

知识大全 VB.NET中的组件开发

VB.NET中的组件开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!简介组件其实是一段可以重用的

知识大全 Asp组件初级入门与精通系列之七

Asp组件初级入门与精通系列之七  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在运行前几章的例