我正在尝试编写一些代码来管理 Azure 应用程序代理(特别是 SSL 证书),基于此 https://learn.microsoft.com/en-us/azure/active-directory/app-proxy/scripts /powershell-get-all-app-proxy-apps-extended
在本地运行时,代码有效。在 azure 自动化帐户的上下文中运行时,我收到以下信息:
错误: 异常 System.NullReferenceException:对象引用未设置到对象的实例。 在 X 中的 Microsoft.Open.MSGraphV10.PowerShell.GetApplicationProxyApplication.ProcessRecord():tQ8881 epo\src\dev\PowerShell.V2\MSGraphV10.PowerShell\MSGraphV10.PowerShell.AutoGen\Api\ApplicationProxyApi.cs:第 103 行
打电话时
$app = Get-AzureADApplicationProxyApplication -ObjectId $item.ObjectId -ErrorAction SilentlyContinue
完整示例:
# Before you begin:
# Run Connect-AzureAD to connect to the tenant domain.
# Required Azure AD role: Global Administrator or Application Administrator or Application Developer
Disable-AzContextAutosave -Scope Process
$AzureContext = (Connect-AzAccount -Identity).context
$context = Set-AzContext -Tenant $tenantId -DefaultProfile $AzureContext
$aadToken = Get-AzAccessToken -ResourceTypeName AadGraph
Connect-AzureAD -TenantId $context.tenant.id -AadAccessToken $aadToken.Token -AccountId $context.Account.Id
$allApps = Get-AzureADApplication -all $true
$aadapServPrinc = Get-AzureADServicePrincipal -Top 100000 | where-object {$_.Tags -Contains "WindowsAzureActiveDirectoryOnPremApp"}
$aadapApp = $aadapServPrinc | ForEach-Object { $allApps -match $_.AppId}
foreach ($item in $aadapApp) {
$app = Get-AzureADApplicationProxyApplication -ObjectId $item.ObjectId -ErrorAction SilentlyContinue
}
作为调试的一部分,我已经分配了托管身份应用程序开发人员、应用程序管理员和全局管理员,但是,它仍然失败。
有人可以帮忙吗?
最终,我希望查询
$app.VerifiedCustomDomainCertificatesMetadata
以确定证书的到期日期。如果有人知道不同的方式,我愿意输入。
[编辑] 如果我获得自动化帐户的访问令牌,我可以在本地重现错误。
所以这与身份表现不佳有关,即使它具有相关权限(测试为分配的全局管理员角色)