我正在處理用於訪問REST Web服務的自定義Powershell Cmdlet。
Web服務要求我進行身份驗證,並且當我這樣做時,會返回一個authenticaton令牌,之後我必須包含每個請求中的身份驗證令牌。自定義Powershell Cmdlet - 創建隱藏的可訪問變量
我面臨的問題是我無法以所需的方式存儲令牌,所以我可以在身份驗證後輕鬆地在命令中使用它。
我想如果它可以像Connect-MSOLService一樣工作。
對於那些不熟悉Office 365 cmdlet的人,我會舉幾個例子。
的Office 365的cmdlet
$證書= GET-憑證
連接,MSOLService -Credential $證書
GET-MSOLUser
在這個例子中的Get-MSOLUser將返回每個Office 365用戶,因爲Connect-MSOLService已事先被調用。
我Cmdlet的
$證書= GET-憑證
$令牌=連接,WebService的-Credential $證書
GET-服務器-token $令牌
獲取客戶端-token $令牌
正如你所看到的,我必須返回令牌並將其存儲在一個變量中,並在驗證後的每次調用中使用它。
因此,這導致我的問題,我怎麼能注入到Powershell會話中的令牌,然後在我的cmdlet /模塊中的每個命令中使用它「引擎蓋下」?
謝謝你的時間。
我忘了提到的一件事是我正在用C#編寫Cmdlet。 我將檢查是否有可能在C#代碼中向全局變量注入變量。 – Keb
經過一番思考,即使我能夠將令牌客棧獲取到全局變量,我仍然需要執行Get-Service -token $ token之類的命令,但是感謝您的建議。 – Keb
我只記得PowerShell也有腳本作用域的變量。我只是不知道如何在C#Cmdlet中工作,因爲我從來沒有寫過。是否有一個特定的原因,你正在編寫它在C#中,而不是在PowerShell? –