【问题标题】:Authenticate powershell script using AccessToken使用 AccessToken 验证 powershell 脚本
【发布时间】:2020-10-11 03:26:47
【问题描述】:

我有一个调用 PowerShell 脚本的发布管道,它有“Select-AzureSubscription”语句(在循环中,我必须将不同的订阅分配为当前订阅并执行一些过程)。当它运行时,我收到以下错误,因为我没有添加“Add-AzureAccount”。

Select-AzureSubscription : 订阅名称不存在。

有没有办法使用管道访问令牌验证或执行 Add-AzureAccount。

代码:-

Select-AzureSubscription -SubscriptionName $Subscription -Current 
CloudServices = Get-AzureService | select ServiceName 

【问题讨论】:

  • 如果你关心查找Add-AzureAccount,你会发现没有一个参数接受管道输入,所以答案是否定的。
  • 有什么解决方法吗?对 Select-AzureSubscription 进行身份验证
  • 您将访问哪些天蓝色资源?你能提供你的脚本sn-p吗?也许我可以给出更好的解决方案。
  • 嗨,Joy,编辑了问题并添加了代码。在这里,我想获取所有云服务列表。为了执行“Get-AzureService”命令,我们需要设置一个默认订阅。但在这里,Select-AzureSubscription 需要身份验证。如何通过发布管道进行此身份验证。
  • @Tinz 你用Azure PowerShell task吗?在使用 Azure 资源之前,您需要一个 Azure 资源管理器服务连接:docs.microsoft.com/en-us/azure/devops/pipelines/library/…

标签: powershell azure-devops azure-pipelines azure-powershell azure-pipelines-release-pipeline


【解决方案1】:

您可以尝试以下步骤(我无法为您测试它,因为我没有未启用 MFA 的用户帐户)。

1.在devops中,导航到Project Settings -> Service connections -> New service connection -> Azure Classic

然后输入信息,可以在azure门户->订阅中获取订阅名称和id。

注意:UsernamePassword 需要是未启用 MFA 的用户帐户。

2.创建服务连接后,在管道中,使用Task version 3.*创建一个Azure powershell任务,选择Azure Connection TypeAzure Classic,使用步骤1中创建的服务连接选择Azure Classic Subscription

然后使用脚本:

Select-AzureSubscription -SubscriptionName <subscription-name> -Current 
CloudServices = Get-AzureService | select ServiceName 

【讨论】:

  • 嗨,Joy,在这种情况下,我们是否需要为每个订阅提供单独的服务连接?
  • 嗨,Joy,在 PowerShell 中,我有一个订阅循环并获取每个订阅的 Azure 服务。如果我只能在管道中使用一个订阅,那么我就无法采用此解决方案。 :(
  • @Tinz 不确定,你可以试试。如果您只使用一个服务连接,请参阅Select-AzureSubscription 是否有效。如果它不起作用,您可能需要使用不同的连接。问题是我没有没有 MFA 的账号,所以我无法为你测试。-(
  • @Tinz 请试一试,也许可以。
猜你喜欢
  • 2016-11-09
  • 1970-01-01
  • 2011-03-09
  • 2017-12-31
  • 2022-12-24
  • 2012-10-02
  • 2018-02-14
  • 1970-01-01
  • 2016-11-05
相关资源
最近更新 更多