powershell core 7.0.3 Az.Account PSADServicePrincipal app角色和oauth2permissions

问题描述

我有如下所示的Windows powershell 5.1脚本块,可以成功检索appRoles和oauth2permissions。

import-module -name AzureAD
if ($null -eq $mycredentials) { $mycredentials = Get-Credential }
$azConnectionContext = Connect-AzureAD -Credential $mycredentials
# $svp = Get-AzureADServicePrincipal -Filter "displayName -eq 'Microsoft Graph' } # not working,why ???
$svp = Get-AzureADServicePrincipal -All $true | ? { $_.displayName -eq 'Microsoft Graph }
$appRoles = $svp.AppRoles; $oauth2permissions = $svp.Oauth2Permissions

我正在尝试转换为如下所示的powershell core 7脚本块,并且由于PSADServicePrincipal类型没有公开这些属性,所以我无法检索appRoles和oauth2permissions。

import-module -name Az.Accounts
$azConnectionContext = Connect-AzAccount 
$svp = Get-AzADServicePrincipal -displayName 'Microsoft Graph' }
$appRoles = $svp.AppRoles; $oauth2permissions = $svp.Oauth2Permissions  # both of these fail

问题-有人知道我如何使用Powershell Core 7.0.3 API和类型获得Azure广告服务主体appRoles和oauth2permissions吗?

解决方法

代替:
$svp.AppRoles;

使用:
$svp.AppRole;

$svp.Oauth2Permissions应该可以工作。类型应为 Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.OAuth2Permission。

,

最后一个问题,remove-module仅删除当前会话的模块。您需要运行卸载模块。

这里有一个Uninstall-AzModule函数可以帮助您:https://docs.microsoft.com/en-us/powershell/azure/uninstall-az-ps?view=azps-4.6.1