powershell 核心 7.0.3 Az.Account PSADServicePrincipal appRoles 和 oauth2permissions

powershell core 7.0.3 Az.Account PSADServicePrincipal appRoles and oauth2permissions

我有 windows 如下成功检索 appRoles 和 oauth2permissions 的 powershell 5.1 脚本块。

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 脚本块,但我无法检索 appRoles 和 oauth2permissions,因为 PSADServicePrincipal 类型不公开这些属性。

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 核心 7.0.3 api 和类型获得 azure 广告服务主体 appRoles 和 oauth2permissions 吗?

而不是:
$svp.AppRoles;

使用:
$svp.AppRole;

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

关于你的最后一个问题,remove-module 只删除当前会话的一个模块。您需要 运行 Uninstall-Module 来代替。

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