active-directory – OU使用PowerShell批量许可Office 365用户

我正在尝试做一些我认为不应该太复杂修复的事情.我的最终目标:我在一个AD OU中有某些用户需要在Office 365中使用某个许可证,而在不同的OU中有不同的用户获得不同的许可证.

我想要运行的命令是:

Get-ADUser -Filter * -SearchBase "ou=test,dc=our,dc=domain,dc=edu" | Set-MsolUserLicense -AddLicenses ourorg:STANDARDWOFFPACK_IW_STUDENT

但是失败的回应是:

Set-MsolUserLicense:输入对象无法绑定,因为它不包含绑定所有必需参数所需的信息:ObjectId At line:1 char:111 Get-ADUser -Filter * -SearchBase“ou =测试学生,ou =学生, dc = campus,dc = org,dc = edu“| Set-MsolUserLicense<<<< -AddLicenses nwcu:STANDARDWOFFPACK_IW_STUDENT 单独地,这两个命令都有效.我可以选择OU中的所有用户,我也可以手动使用带有-UserPrincipalName的Set-MsolUserLicense命令来许可单个用户. 这是因为Get-ADUser没有像Set-MsolUserLicense那样返回ObjectID吗? Get-ADUser确实返回ObjectGUID.如果我在这里正确的轨道,有没有办法将这些一起映射到管道输入? 编辑:我知道这样做的流行方式涉及为此上传CSV文件,我知道我可以CSV导出这些用户,但我已经让它们在OU中如此干净整洁,所以我很想做如果可能的话,现在导入/导出. 提前致谢!

最佳答案
您肯定希望使用for-each循环来枚举每个用户并应用许可证.循环需要从Get-ADUser查询中返回的每个对象调用.UserPrincipalName,因为Office365在设置许可证时需要使用该值:

Get-ADUser | %{ Set-MSOLUserLicense -UserPrincipalName $_.UserPrincipalName }

我在这里创建了自己的答案,以解释我认为您在问题中描述的一个常见案例:您不希望将相同的许可选项应用于每个人.

A TechNet Blog对此事非常有帮助.出于数据泄漏的原因,您可能不希望财务团队访问SharePoint Online / OneDrive for Business,或者您可能有一个您不希望为Lync / Skype for Business启用的呼叫中心.

要获取有关租户的信息,请从顶部开始:

GET-MSOLAccountSku

这将返回您在租户中的许可证包.一些常见的SKU是ENTERPRISEPACK和DESKLESSPACK.这些将由yourorg列出:AccountSkuId下的LICENSEPACK.

请务必注意,当您通过PowerShell应用时,每个许可证包都可以禁用这些功能(类似地,您可以选择在管理中心中选中/取消选中选项框).

要创建此许可证选项子集,请创建新变量并利用New-MSOLLicenseOptions cmdlet:
$LicOpt = New-MsolLicenseOptions -AccountSkuId“yourorg:ENTERPRISEPACK”-DisabledPlans OFFICESUBSCRIPTION,MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE,RMS_S_ENTERPRISE

(上面的选项对应上面的截图,我相信你可以猜到我完全从配置脚本中删除了它.)

最后,我们可以将它与ForEach循环中的Set-MsolUserLicense联系起来:

$LicOpt = New-MsolLicenseOptions -AccountSkuId "yourorg:ENTERPRISEPACK" -DisabledPlans OFFICESUBSCRIPTION,MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE,RMS_S_ENTERPRISE

Get-ADUser | %{ Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses "yourorg:ENTERPRISEPACK" -LicenseOptions $LicOpt }

与往常一样,您的租户可能会有所不同.我希望我已经给你足够的信息来发现可用的选项并适当地应用!

转载注明原文:active-directory – OU使用PowerShell批量许可Office 365用户 - 代码日志