使用PowerShell 6.3的Linux版Azure部署脚本应安装哪个Azure AD版本?
适配Azure Deployment Script的AzureAD兼容方案
你当前使用的AzureAD.Standard.Preview模块存在已知的Linux依赖缺失问题,旧版AzureAD模块为Windows专属,均不兼容你使用的Linux环境下PowerShell 6.3场景,推荐使用微软官方主推的跨平台替代方案Microsoft Graph PowerShell模块,操作步骤如下:
- 步骤1:在部署脚本开头添加模块安装命令
Install-Module Microsoft.Graph -Force -AllowClobber -Scope CurrentUser
- 步骤2:替换原有AzureAD相关逻辑代码
你原有获取Token的逻辑可以复用,直接替换后续AzureAD命令即可:
# 原有Token获取逻辑保留即可 $context = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile.DefaultContext $graphToken = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate($context.Account, $context.Environment, $context.Tenant.Id.ToString(), $null, [Microsoft.Azure.Commands.Common.Authentication.ShowDialog]::Never, $null, "https://graph.microsoft.com").AccessToken Write-Output "Hi I'm $($context.Account.Id)" # 替换原Connect-AzureAD Connect-MgGraph -AccessToken $graphToken # 替换原Get-AzureADServicePrincipal $miIdentity = Get-MgServicePrincipal -Filter "displayName eq 'sqlservername.database.windows.net'" # 替换原Get-AzureADMSGroup $group = Get-MgGroup -GroupId "xxx" # 替换原Add-AzureADGroupMember New-MgGroupMember -GroupId $group.Id -DirectoryObjectId $miIdentity.Id
补充说明:若必须保留原有AzureAD语法,可安装预览版兼容包,执行命令
Install-Module -Name AzureAD -RequiredVersion 2.0.2.140 -AllowPrerelease -Force -Scope CurrentUser即可,该版本仅做有限兼容,生产环境优先选择Graph方案。
内容的提问来源于stack exchange,提问作者WiredLessInTX
相关产品推荐
相关产品推荐

