在C#或Powershell中创建个人访问令牌

时间:2019-11-01 21:20:04

标签: powershell azure-devops

您好,我正在使用Azure Devops,并且我有一个使用部署组的CI / CD管道。创建我的部署组后,Web UI生成了一个Powershell脚本,您可以利用该脚本在要添加到部署组的任何节点上安装代理。我还单击了生成PAT令牌的复选框,该令牌可以作为代理安装的参数传递。

我想在powershell脚本中自动化所有这些操作,在这种情况下,是将Web UI生成的powershell cmd复制并粘贴到我自己的脚本中。问题是我在网上找不到任何有关在powershell中生成PAT令牌的信息。

有人可以告诉我是否有可能以编程方式生成PAT令牌,然后我可以用它来安装代理吗?

2 个答案:

答案 0 :(得分:0)

这似乎不能以编程方式完成。有关详细信息,请参见以下帖子:

https://stackoverflow.com/a/50870641/3858673

还要注意,API only supports listing a users available PATs.

但是,PAT的创建仅需要每30-365天完成一次。创建之后,您应该可以将其安全地传递到PowerShell脚本。

答案 1 :(得分:-1)

下面的代码可以帮助您。

$currentAzureContext = Get-AzureRmContext;
$azureRmProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile;
$profileClient = New-Object 
Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient($azureRmProfile);
$pat = $profileClient.AcquireAccessToken($currentAzureContext.Subscription.TenantId).AccessToken;
Write-Output $pat

这是访问令牌,而不是PAT,但是您可以使用此访问令牌访问所有API。

相关问题