PowerShell中怎么繞過訪問限制

本篇文章為大家展示了PowerShell中怎么繞過訪問限制,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到白水網(wǎng)站設(shè)計與白水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白水地區(qū)。

首先,我們?yōu)槭裁床贿m用powershell.exe來執(zhí)行我們的.ps1腳本呢?因為PowerShell腳本跟C#一樣,它們兩個對于.NET框架而言,都只是“前端”方面的東西,它們的本質(zhì)都只是一種編程語言。不過在C#中,我們需要對程序代碼進行編譯才可以使用和執(zhí)行,即編譯型語言,這是它和PowerShell這種解釋型腳本語言有很大區(qū)別。

鑒于PowerShell.exe只是.NET程序集“system.management.automation”的解釋器,因此它應(yīng)該可以在C程序中與這個對象進行交互并執(zhí)行.ps1腳本。

下面給出的就是實例代碼:

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()方法會創(chuàng)建一個“runspace”對象,我們可以將其視作是PowerShell運行時的一個獨立實例。接下來,我們需要將腳本添加到新創(chuàng)建的pipeline中,并對通信信道進行排序,最后通過Invoke()方法執(zhí)行我們的腳本命令。

最終的結(jié)果將會被追加到我們的字符串生成器中,然后作為字符串發(fā)回給調(diào)用函數(shù),以便顯示在控制臺的輸出結(jié)果中。這也就是為什么我們要在命令中添加“Out-String”的原因。

怎么樣,整個過程很簡單吧?

接下來,我們需要對代碼進行編譯并完成代碼測試。

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

請記住,具體的執(zhí)行路徑需要取決于目標系統(tǒng)中所安裝的框架版本。除此之外,別忘了添加對“system.management.automation.dll”程序集的引用。

如果一切正常的話,我們就已經(jīng)完成了代碼的編譯。接下來,創(chuàng)建一個簡單地測試腳本:

test.ps1:echo "Hello from powershell-less"echo "PID: $pid"

然后運行該腳本:

PowerShell中怎么繞過訪問限制

上述內(nèi)容就是PowerShell中怎么繞過訪問限制,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁題目:PowerShell中怎么繞過訪問限制
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article44/ijseee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、用戶體驗、營銷型網(wǎng)站建設(shè)移動網(wǎng)站建設(shè)、Google網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計