加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 00:08:06 所属栏目:Windows 来源:网络整理
导读:我正在尝试做一些我认为不应该太复杂修复的事情.我的最终目标:我在一个AD OU中有某些用户需要在Office 365中使用某个许可证,而在不同的OU中有不同的用户获得不同的许可证. 我想要运行的命令是: Get-ADUser -Filter * -SearchBase "ou=test,dc=our,dc=domai
我正在尝试做一些我认为不应该太复杂修复的事情.我的最终目标:我在一个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,RMS_S_ENTERPRISE

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读