中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PowerShell中怎么繞過訪問限制

發布時間:2021-07-24 13:59:00 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

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

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

鑒于PowerShell.exe只是.NET程序集“system.management.automation”的解釋器,因此它應該可以在C程序中與這個對象進行交互并執行.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()方法會創建一個“runspace”對象,我們可以將其視作是PowerShell運行時的一個獨立實例。接下來,我們需要將腳本添加到新創建的pipeline中,并對通信信道進行排序,最后通過Invoke()方法執行我們的腳本命令。

最終的結果將會被追加到我們的字符串生成器中,然后作為字符串發回給調用函數,以便顯示在控制臺的輸出結果中。這也就是為什么我們要在命令中添加“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

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

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

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

然后運行該腳本:

PowerShell中怎么繞過訪問限制

上述內容就是PowerShell中怎么繞過訪問限制,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平顶山市| 栾川县| 麻栗坡县| 汝城县| 于田县| 忻城县| 长宁区| 略阳县| 永靖县| 沙雅县| 白玉县| 织金县| 绵竹市| 封开县| 余干县| 东台市| 巴马| 黎川县| 当阳市| 应用必备| 澎湖县| 兰溪市| 普安县| 探索| 蕉岭县| 石景山区| 应城市| 博客| 建阳市| 平远县| 斗六市| 湖州市| 三门峡市| 察雅县| 祁连县| 康保县| 七台河市| 蒙山县| 忻城县| 随州市| 祁东县|