簡體   English   中英

在TFS發行管理器上使用AzureAD PowerShell CmdLets

[英]Using AzureAD PowerShell CmdLets on TFS Release Manager

我想在我們的TFS發行管理器環境中執行一些PowerShell腳本,這些腳本使用AzureAD模塊設置某些Azure AD組。 使用Azure Powershell任務執行腳本。 我已經安裝了AzureAD模塊,因此可以識別AzureAD PowerShell CmdLets。

但是,要使它們起作用,腳本首先需要使用Connect-AzureAD CmdLet連接到AzureAD。 此CmdLet希望顯示一個用於輸入憑據的模式對話框,這顯然在Release Manager任務中是不可能的。 我也無法使用命令行參數提供憑據。 我希望Connect-AzureAD以某種方式使用當前用戶上下文進行連接。 這可能嗎?

您可以使用Connect-AzureAD的-Credential選項。

在您的AzureAD任務中,可以使用以下代碼:

$pass=ConvertTo-SecureString $Env:password -AsPlainText -Force
$credential=New-Object PSCredential($Env:login, $pass)
Connect-AzureAD -Credential $credential

登錄名和密碼存儲在發布定義的秘密變量中。

或者,您可能會從構建定義中的上一個任務獲取密碼。 在那種情況下,在任務的腳本參數中,您傳遞密碼-password "$(password)"並且在` ScriptScript inline中,這次:

 param([string]$password)
 $pass=ConvertTo-SecureString $password -AsPlainText -Force
 $credential = New-Object PSCredential($Env:login, $pass)
 Connect-AzureAD -Credential $credential

``

我使用Azure KeyVault任務從KeyVault獲得了密碼,但是如果您是在本地使用,則對於您而言可能不是一個選擇。

我們找到了答案。 它已經在Connect-AzureAD官方文檔頁面上擺在我們面前(示例3)。

因此,我們現在使用SPN和自簽名證書進行身份驗證。 這樣很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM