3

我正在处理一个 Azure 自动化脚本,我需要在其中检索访问令牌以调用 AAD Graph API。我想使用 ADAL 来执行此操作,因此我将其压缩Microsoft.IdentityModel.Clients.ActiveDirectory.dll并作为模块上传。当我从测试刀片运行时,它有时会工作,有时会因以下错误而失败:

New-Object : Cannot find type [Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential]: verify that the 
assembly containing this type is loaded.
At line:22 char:9
+ $cred = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredent ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidType: (:) [New-Object], PSArgumentException
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

当它失败时,我只是再次运行它并且它可以工作。现在,我已在 3 天前发布并安排了此运行手册作为日常工作。到目前为止,它每天都因同样的错误而失败。

有没有其他人看到这个?关于下一步的任何建议?

4

1 回答 1

1

我通过在脚本中添加以下行来解决此问题:

Add-Type -Path "C:\Modules\User\Microsoft.IdentityModel.Clients.ActiveDirectory\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"

仍然不确定为什么它之前间歇性地工作。我想这取决于 ADAL 可能会或可能不会加载的其他内容?

于 2015-11-11T03:21:49.643 回答