powershell 尝试创建许可证对象时出现Set-AzureADUserLicense错误

stszievb  于 2022-12-04  发布在  Shell
关注(0)|答案(3)|浏览(165)

我正在尝试创建一个脚本,用于将用户许可证添加到O365。当我运行以下行时:

$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses

出现以下错误:
无法找到类型[Microsoft.Open.AzureAD.模型.分配的许可证]:请验证是否加载了包含此类型的程序集。
我找不到任何东西来解决这个错误,希望能得到一些帮助。

ldxq2e6h

ldxq2e6h1#

根据我的研究,该类型是AzureAD模块的一部分,它也被指出为here。但没有指出的是如何利用dll。这里有一小段代码,它应该将该命名空间引入到您的会话中,并允许您的命令工作。它还处理安装多个AzureAD模块的问题,如果您确定只安装一个模块,可以删除这些模块。

Get-Module AzureAD -ListAvailable | Sort-Object Version | Select-Object -Last 1 | ForEach-Object {
    $AzureADGraphDLL = $_.filelist -match '.*graph.*.dll$'
    Import-Module $AzureADGraphDLL
}

演示

$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses

$license.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                           
-------- -------- ----                                     --------                                                                                                                           
True     False    AssignedLicenses                         System.Object
r9f1avp5

r9f1avp52#

Import-Module -Name 'AzureAD' -UseWindowsPowershell
Import-Module -Name 'AzureAD' -NoClobber
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses

这是在PowerShell v7上测试的。当前AzureAD模块与PSv7不兼容,在v5.1远程会话中运行。这允许将数据类型导入脚本会话并在远程会话中运行cmdlet。

mwg9r5ms

mwg9r5ms3#

在-TypeName值中输入错误后出现完全相同的错误消息:$License =新对象类型名称Microsoft.Open.AzureAD.模型.分配的许可证

相关问题