本篇文章為大家展示了PowerShell中怎么繞過(guò)訪問(wèn)限制,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到白水網(wǎng)站設(shè)計(jì)與白水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白水地區(qū)。
首先,我們?yōu)槭裁床贿m用powershell.exe來(lái)執(zhí)行我們的.ps1腳本呢?因?yàn)镻owerShell腳本跟C#一樣,它們兩個(gè)對(duì)于.NET框架而言,都只是“前端”方面的東西,它們的本質(zhì)都只是一種編程語(yǔ)言。不過(guò)在C#中,我們需要對(duì)程序代碼進(jìn)行編譯才可以使用和執(zhí)行,即編譯型語(yǔ)言,這是它和PowerShell這種解釋型腳本語(yǔ)言有很大區(qū)別。
鑒于PowerShell.exe只是.NET程序集“system.management.automation”的解釋器,因此它應(yīng)該可以在C程序中與這個(gè)對(duì)象進(jìn)行交互并執(zhí)行.ps1腳本。
下面給出的就是實(shí)例代碼:
using System.Collections.ObjectModel; using System.Management.Automation; using System.Management.Automation.Runspaces; using System.IO;using System;using System.Text;namespace PSLess{ class PSLess { static void Main(string[] args) { if(args.Length ==0) Environment.Exit(1); string script=LoadScript(args[0]); string s=RunScript(script); Console.WriteLine(s); Console.ReadKey(); } private static string LoadScript(string filename) { string buffer =""; try { buffer = File.ReadAllText(filename); } catch (Exception e) { Console.WriteLine(e.Message); Environment.Exit(2); } return buffer; } private static string RunScript(string script) { Runspace MyRunspace = RunspaceFactory.CreateRunspace(); MyRunspace.Open(); Pipeline MyPipeline = MyRunspace.CreatePipeline(); MyPipeline.Commands.AddScript(script); MyPipeline.Commands.Add("Out-String"); Collection<PSObject> outputs = MyPipeline.Invoke(); MyRunspace.Close(); StringBuilder sb = new StringBuilder(); foreach (PSObject pobject in outputs) { sb.AppendLine(pobject.ToString()); } return sb.ToString(); } }}
其中的RunScript()方法會(huì)創(chuàng)建一個(gè)“runspace”對(duì)象,我們可以將其視作是PowerShell運(yùn)行時(shí)的一個(gè)獨(dú)立實(shí)例。接下來(lái),我們需要將腳本添加到新創(chuàng)建的pipeline中,并對(duì)通信信道進(jìn)行排序,最后通過(guò)Invoke()方法執(zhí)行我們的腳本命令。
最終的結(jié)果將會(huì)被追加到我們的字符串生成器中,然后作為字符串發(fā)回給調(diào)用函數(shù),以便顯示在控制臺(tái)的輸出結(jié)果中。這也就是為什么我們要在命令中添加“Out-String”的原因。
怎么樣,整個(gè)過(guò)程很簡(jiǎn)單吧?
接下來(lái),我們需要對(duì)代碼進(jìn)行編譯并完成代碼測(cè)試。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe/reference:C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\system.management.automation.dll /out:c:\setup\powerless.exe c:\scripts\powersless.cs
請(qǐng)記住,具體的執(zhí)行路徑需要取決于目標(biāo)系統(tǒng)中所安裝的框架版本。除此之外,別忘了添加對(duì)“system.management.automation.dll”程序集的引用。
如果一切正常的話,我們就已經(jīng)完成了代碼的編譯。接下來(lái),創(chuàng)建一個(gè)簡(jiǎn)單地測(cè)試腳本:
test.ps1:echo "Hello from powershell-less"echo "PID: $pid"
然后運(yùn)行該腳本:
上述內(nèi)容就是PowerShell中怎么繞過(guò)訪問(wèn)限制,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁(yè)題目:PowerShell中怎么繞過(guò)訪問(wèn)限制
網(wǎng)站網(wǎng)址:http://www.ekvhdxd.cn/article44/ijseee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、用戶體驗(yàn)、營(yíng)銷型網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、Google、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)