gpt4 book ai didi

powershell - AzureAD PowerShell New-AzureRmRoleAssignment 不断失败

转载 作者:行者123 更新时间:2023-12-04 03:50:00 26 4
gpt4 key购买 nike

我正在编写一个 powershell 脚本,该脚本将创建一个资源组,将包含的应用程序(在本例中为 Web Api)注册到关联的 AAD。但是,当调用尝试分配 Reader 权限时,它一直失败。

我从 Visual Studio (2015) 中的 AzureResourceGroup 模板附带的基本部署*.ps1 文件开始。

我正在运行以下代码:

#Requires -Version 3.0
#Requires -Module AzureRM.Resources
#Requires -Module Azure.Storage
Import-Module Azure -ErrorAction SilentlyContinue
Set-StrictMode -Version 3

Login-AzureRmAccount

$tenantWebSite = New-AzureRmADApplication -DisplayName "TheSiteName" -HomePage "http://MySignOnUrl" -IdentifierUris "http://MyIdentifierUrl" -Password "MyClientSecret"

$tenantWebSiteServicePrincipal = New-AzureRmADServicePrincipal -ApplicationId $tenantWebSite.ApplicationId

New-AzureRmRoleAssignment -RoleDefinitionName Reader -ServicePrincipalName $tenantWebSite.ApplicationId

最后一个命令 (New-AzureRmRoleAssignment) 持续失败,并出现以下错误:

09:58:26 - [ERROR] New-AzureRmRoleAssignment : PrincipalNotFound: Principal 
09:58:26 - [ERROR] 50f3d430c68b485b8c11a63552171550 does not exist in the directory
09:58:26 - [ERROR] <MyTenantId>.
09:58:26 - [ERROR] At D:\dev_new_2010\cto\src\dev\d.tom.0\deploy\calidos.maat.deploy.azureresource
09:58:26 - [ERROR] group\Scripts\Deploy-AzureResourceGroup.ps1:115 char:1
09:58:26 - [ERROR] + New-AzureRmRoleAssignment -RoleDefinitionName Reader -ServicePrincipa ...
09:58:26 - [ERROR] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
09:58:26 - [ERROR] + CategoryInfo : CloseError: (:) [New-AzureRmRoleAssignment], Clo
09:58:26 - [ERROR] udException
09:58:26 - [ERROR] + FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureRoleA
09:58:26 - [ERROR] ssignmentCommand

通常,我使用 Visual Studio 中的部署选项来运行此脚本。当我从 Microsoft Azure PowerShell 命令窗口运行此脚本时,我收到相同的错误。

但是,当我在同一个 powershell 窗口中运行确切的命令时,它起作用了!

New-AzureRmRoleAssignment -RoleDefinitionName Reader -ServicePrincipalName <ApplicationId>

有人知道为什么在 ps1 文件中会失败吗?我也尝试过明确定义范围,但这也没有成功。

最佳答案

编辑:

好吧,之前的“解决方案”纯属运气……显然,New-AzureRmADServicePrincipal 是异步创建的。该方法确实立即返回一个对象,但实际的主体并没有立即创建......

我通过添加 Start-Sleep -s 15 命令解决了这个问题。

如果这还不够,请增加它,或者捕获错误并再等待几秒钟,然后重试。

关于powershell - AzureAD PowerShell New-AzureRmRoleAssignment 不断失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35172941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com