可能有些情況下,你不想完全體驗通過PSRP(PowerShell遠程處理協議)遠程管理,或有需要從非Windows系統上執行一些PowerShell腳本。你可能會像我很久之前在這篇文章中寫的那樣直接基于WS-Man來寫代碼。但是那樣很復雜,并且需要WS-Man和SOAP的一些知識。
我在PowerShell腳本中使用.Net HttpListener類寫了個HTTP監聽器。你可以非常簡單地啟動一個監聽器的實例(需要提升權限監聽網絡),現在你可以執行任意的PowerShell命令了,它還可以返回多種格式的執行結果。
一旦你安裝了這個組件(只需要拷貝它到Documents\WindowsPowerShell\Modules 文件夾),并且導入,你就可以通過Start-HTTPListener啟動一個實例。

默認我讓它監聽在8888端口,集成了Windows驗證,但是仍然可以在參數中配置。這里我打開了另一個PowerShell窗口,并執行了“get-process powershell”

注意我使用 –UseDefaultCredentials來確保使用我的當前安全上下文來驗證,否則你會被告知匿名訪問不支持。
默認情況下,我返回JSON格式的輸出。因為所得到的JSON對象是很大的,它會被截斷。 HTTP響應的body是在內容屬性,但是它是一個字節數組。我使用UTF8 .NET類進行解碼并顯示部分JSON數據:

我可以使用ConvertFrom-JSON的,使之在PowerShell中更像模像樣:

當然,如果你使用的是不同的客戶端腳本如Python,Perl或Ruby的,那么你可以在這些語言中調用腳本庫使用JSON的版本。
如果你只是玩玩而已,你可以用文本格式,使事情變得更加簡單易讀,就像直接在PowerShell中執行相同的命令行:

其他格式可供選擇,如果你調用HTTP端點不帶任何參數,你會得到基本的用法信息反饋:

您可能感興趣的文章:- linux shell中 if else以及大于、小于、等于邏輯表達式介紹
- Linux中執行shell腳本的4種方法總結
- Linux shell腳本編程if語句的使用方法(條件判斷)
- linux shell自定義函數(定義、返回值、變量作用域)介紹
- linux shell數組深入學習理解
- linux shell命令行選項與參數用法詳解
- linux shell腳本學習xargs命令使用詳解
- Linux Shell中判斷進程是否存在的代碼
- Linux shell實現HTTP服務示例代碼