AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 701143
Accepted
SteadH
SteadH
Asked: 2015-06-24 16:11:26 +0800 CST2015-06-24 16:11:26 +0800 CST 2015-06-24 16:11:26 +0800 CST

使用 PowerShell 按 OU 批量许可 Office 365 用户

  • 772

我正在尝试做一些我认为不应该太复杂的修复。我的最终目标:一个 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 : The input object cannot be bound because it did not contain the information required to bind all mandatory parameters: ObjectId At line:1 char:111 + Get-ADUser -Filter * -SearchBase "ou=Test students,ou=Students,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 中如此整洁,所以我很乐意这样做如果可能的话,现在导入/导出。

提前致谢!

active-directory
  • 1 1 个回答
  • 3040 Views

1 个回答

  • Voted
  1. Best Answer
    blaughw
    2015-06-25T08:21:06+08:002015-06-25T08:21:06+08:00

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

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

    我在这里创建了自己的答案来解释我认为您在问题中描述的一个常见案例:您不想将相同的许可证选项一揽子应用到每个人。

    关于这个问题的 TechNet 博客非常有帮助。出于数据泄露的原因,您可能不想让财务团队访问 SharePoint Online/OneDrive for Business,或者您可能拥有不想为 Lync/Skype for Business 启用的呼叫中心。

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

    Get-MSOLAccountSku

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

    请务必注意,当您通过 PowerShell 申请时,这些许可证包中的每一个都可以禁用其中的功能(同样,您可以选择在管理中心中选中/取消选中选项框)。

    许可证选项

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

    (上面的选项将对应于上面的屏幕截图,我相信你可以猜到我完全从配置脚本中提取了它。)

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

    $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 }
    

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

    • 2

相关问题

  • 如果以域用户身份远程登录,PC 速度极慢

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve