使用 Office 365 PowerShell 查看授权和未授权的用户

 

上一次修改主题:2016-12-21

介绍如何使用 Office 365 PowerShell 查看授权和未授权的用户帐户。

您的 Office 365 组织中的用户帐户可能已从组织提供的许可计划中分配到部分或全部可用的许可证,或者未分配到任何许可证。您可以使用 Office 365 PowerShell 快速查找您组织中的授权和未授权的用户。

  • 本主题中的步骤需要您连接到 Office 365 PowerShell。有关说明,请参阅连接到 Office 365 PowerShell

  • 如果您使用 Get-MsolUser cmdlet 而无需使用 All 参数,仅可返回前 500 个帐户。

此部分介绍的步骤未经任何渲染或过多解释。如果您有任何疑问或想了解更多信息,可以阅读本主题的其余部分。

若要查看组织中所有用户帐户及其授权状态的列表,请在 Office 365 PowerShell 中运行以下命令:

Get-MsolUser -All

若要查看组织中所有未授权用户帐户的列表,请运行以下命令:

Get-MsolUser -All -UnlicensedUsersOnly

若要查看组织中所有授权用户帐户的列表,请运行以下命令:

Get-MsolUser -All | where {$_.isLicensed -eq $true}

Office 365 用户帐户和 Office 365 许可证无需一一对应:Office 365 用户可以不具有 Office 365 许可证,也可以不向用户分配 Office 365 许可证。(事实上,单个用户帐户甚至可以具有多个Office 365 许可证。)您在创建新的 Office 365 用户帐户时(有关详细信息,请参阅文章使用 Windows PowerShell 许可 Office 365 用户),无需为该用户分配许可证:新用户将具有有效帐户,但无法登录到 Office 365。如果尝试登录,他们将看到如下所示的内容:

没有有效 Office 365 许可证的用户。

同样,您可能有一个用户需要休假或者休产假/陪产假,因此将要延长时间。在这种情况下,您可以删除用户的许可证,但使用户帐户保持不变(即地址、电话号码等所有属性值保持不变)。这样,您可以将其许可证分配给其他人(例如,接替休假人员的临时工作人员)。用户回到工作岗位后,您可以向其签发新的许可证,他们将可以继续工作,就像从来没有离开过一样。

这就意味着,您确实可以使用户具有帐户但不具有许可证。反之亦然。

文章 使用 Office 365 PowerShell 查看许可证和服务介绍了如何确定您的组织购买的 Office 365 许可证数量,以及为用户分配的这些许可证数量。这是很重要的信息。但了解已向哪些用户分配了这些许可证,哪些用户没有分配许可证同样重要。本文将告诉您如何做到这一点。

您可能已经知道,Get-MsolUser cmdlet 将返回有关所有 Office 365 用户帐户的信息。需要有关所有 Office 365 用户的快速参考信息?请在 Office 365 PowerShell 中运行以下命令:

Get-MsolUser

反之,Get-MsolUser 将返回与以下类似的数据:

UserPrincipalName           DisplayName                     isLicensed
-----------------           -----------                     ----------
ZrinkaM@litwareinc.com      Zrinka Makovac                  True
BelindaN@litwareinc.com     Belinda Newman                  False
BonnieK@litwareinc.com      Bonnie Kearney                  True
FabriceC@litwareinc.com     Fabrice Canel                   True
AnneW@litwareinc.com        Anne Wallace                    True
AlexD@litwareinc.com        Alex Darrow                     True

正如您所见,返回的其中一个属性值是 isLicensed 属性的值。如果 isLicensed 为 False,则意味着用户没有 Office 365 的许可证。换句话说,如果您愿意,您可以滚动用户列表,并挑选出将 isLicensed 属性设置为 False 的用户。

无论如何,只要您的用户数量相对较少,即可滚动用户列表、尝试挑选出未许可用户。但是,如果您具有大量用户,滚动列表将会非常缓慢。(此外,根据 Windows PowerShell 的配置方式,可能完全无法这样做。这是由于对在 Windows PowerShell 控制台中一次可显示的输出行数存在限制。)

牢记这一点,列出未许可用户的更好方式是转为运行此命令:

Get-MsolUser -UnlicensedUsersOnly

该命令仅返回没有 Office 365 许可证的用户。即:

UserPrincipalName           DisplayName                     isLicensed
-----------------           -----------                     ----------
BelindaN@litwareinc.com     Belinda Newman                  False

可以看到,我们有一个未许可用户。如果我们仅需要已许可用户列表,应该怎么做?这略显复杂,但仅一点点复杂而已:

Get-MsolUser | Where-Object {$_.isLicensed -eq $true}

查找 isLicensed 属性为 True 的所有用户帐户的命令将返回与以下类似的信息:

UserPrincipalName           DisplayName                     isLicensed
-----------------           -----------                     ----------
ZrinkaM@litwareinc.com      Zrinka Makovac                  True
BonnieK@litwareinc.com      Bonnie Kearney                  True
FabriceC@litwareinc.com     Fabrice Canel                   True
AnneW@litwareinc.com        Anne Wallace                    True
AlexD@litwareinc.com        Alex Darrow                     True

可以看到,未返回 Belinda Newman 的信息。为什么没有返回?是的,原因是:Belinda 的帐户的 isLicensed 属性未设置为 True

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐