使用 Office 365 PowerShell 管理用户帐户和许可证(六)
来源:互联网 发布:vc 中mfc编程方法 编辑:程序博客网 时间:2024/05/16 06:37
使用 Office 365 PowerShell 禁止访问服务
上一次修改主题:2016-12-21
解释如何使用 Office 365 PowerShell 来添加或移除您组织中的用户对 Office 365 服务的访问权限。
当向 Office 365 帐户分配许可计划中的许可证时,用户就可以使用该许可证提供的 Office 365 服务。但是,您可以控制用户可以访问的 Office 365 服务。例如,即使许可证允许访问 SharePoint Online,您也可以禁用对它的访问。事实上,您可以使用 Office 365 PowerShell 禁止访问以下任何数量的相关服务:
单个帐户。
一组帐户。
组织中的所有帐户。
目录:
简版(说明不含解释)
长版(说明附有详细解释)
另请参阅
开始之前
本主题中的步骤需要您连接到 Office 365 PowerShell。有关说明,请参阅连接到 Office 365 PowerShell。
您可以使用 Get-MsolAccountSku cmdlet 查看可用的许可计划以及这些计划中提供的 Office 365 服务。有关详细信息,请参阅使用 Office 365 PowerShell 查看许可证和服务。
若要查看本主题中相关步骤的前后结果,请参阅查看服务的许可信息。
PowerShell 脚本可自动执行本主题中描述的过程。具体来说,此脚本允许您查看和禁用 Office 365 组织中的服务,包括 Sway。有关详细信息,请参阅使用 Office 365 PowerShell 禁止访问 Sway。
如果您使用 Get-MsolUser cmdlet 而无需使用 All 参数,仅可返回前 500 个帐户。
简版(说明不含解释)
此部分介绍的步骤未经任何渲染或过多解释。如果您有任何疑问或想了解更多信息,可以阅读本主题的其余部分。
若要对用户禁用单个许可计划中的 Office 365 服务,请执行以下步骤:
通过使用以下语法来确定许可计划中不需要的服务:
$LO = New-MsolLicenseOptions -AccountSkuId <AccountSkuId> -DisabledPlans "<UndesirableService1>", "<UndesirableService2>"...
本示例创建 LicenseOptions 对象,该对象可以禁用名为
litwareinc:ENTERPRISEPACK
(Office 365 企业版 E3) 的许可计划中提供的 Office Online 和 SharePoint Online 服务。$LO = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE"
将步骤 1 中的 LicenseOptions 对象用于一个或多个用户。
若要创建一个已禁用服务的新帐户,请使用以下语法:
New-MsolUser -UserPrincipalName <Account> -DisplayName <DisplayName> -FirstName <FirstName> -LastName <LastName> -LicenseAssignment <AccountSkuId> -LicenseOptions $LO -UsageLocation <CountryCode>
本示例为 Allie Bellew 创建一个新帐户,用来分配许可证和禁用步骤 1 中所述的服务。
New-MsolUser -UserPrincipalName allieb@litwareinc.com -DisplayName "Allie Bellew" -FirstName Allie -LastName Bellew -LicenseAssignment litwareinc:ENTERPRISEPACK -LicenseOptions $LO -UsageLocation US
有关在 Office 365 PowerShell 中创建用户帐户的详细信息,请参阅使用 Office 365 PowerShell 创建用户帐户。
若要禁用现有授权用户的服务,请使用下面的语法:
Set-MsolUserLicense -UserPrincipalName <Account> -LicenseOptions $LO
本示例对用户 BelindaN@litwareinc.com 禁用服务。
Set-MsolUserLicense -UserPrincipalName belindan@litwareinc.com -LicenseOptions $LO
若要对所有现有的授权用户禁用步骤 1 中所述的服务,请运行以下命令:
$AllLicensed = Get-MsolUser -All | where {$_.isLicensed -eq $true}; $AllLicensed | foreach {Set-MsolUserLicense -LicenseOptions $LO}
若要对一组现有用户禁用服务,请使用下列两种方法之一来确定用户:
基于现有帐户属性筛选帐户 若要执行此操作,请使用以下语法:
$x = Get-MsolUser -All <FilterableAttributes>; $x | foreach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
本示例对美国销售部门的用户禁用服务。
$USSales = Get-MsolUser -All -Department "Sales" -UsageLocation "US"; $USSales | foreach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
使用特定帐户列表 若要完成此操作,请执行以下步骤:
创建一个文本文件,在它的每一行上包含一个帐户,如下所示:
akol@contoso.comtjohnston@contoso.comkakers@contoso.com
在此示例中,该文本文件是 C:\My Documents\Accounts.txt。
运行以下命令:
Get-Content "C:\My Documents\Accounts.txt" | foreach {Set-MsolUserLicense -UserPrincipalName $_ -LicenseOptions $LO}
若要对用户禁用所有可用许可计划中的 Office 365 服务,请执行以下步骤:
将此脚本复制并粘贴到记事本。
$AllLicensingPlans = Get-MsolAccountSkufor($i = 0; $i -lt $AllLicensingPlans.Count; $i++){ $O365Licences = New-MsolLicenseOptions -AccountSkuId $AllLicensingPlans[$i].AccountSkuId -DisabledPlans "<UndesirableService1>", "<UndesirableService2>"... Set-MsolUserLicense -UserPrincipalName <Account> -LicenseOptions $O365Licences}
为您的环境自定义以下值:
<UndesirableService> 在此示例中,我们将使用 Office Online 和 SharePoint Online。
<Account> 在此示例中,我们将使用 belindan@litwareinc.com。
自定义的脚本如下所示:
$AllLicensingPlans = Get-MsolAccountSkufor($i = 0; $i -lt $AllLicensingPlans.Count; $i++){ $O365Licences = New-MsolLicenseOptions -AccountSkuId $AllLicensingPlans[$i].AccountSkuId -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE" Set-MsolUserLicense -UserPrincipalName belindan@litwareinc.com -LicenseOptions $O365Licences}
在易于您查找的位置将脚本另存为
RemoveO365Services.ps1
。在此示例中,我们将文件保存在“C:\O365 Scripts
”。使用以下命令在 Office 365 PowerShell 中运行此脚本。
& "C:\O365 Scripts\RemoveO365Services.ps1"
$null
。返回顶部
长版(说明附有详细解释)
您在使用 Office 365 PowerShell 签发许可证时会默认启用所有服务。这是一件好事:这意味着您可以快速、轻松地将许可证分配给用户,无需一直指定启用每一项服务。
但是,尽管如此,您可能还需要限制对某些用户可用的服务;例如,某些用户可能应该具有 Office Professional Plus、Skype for Business Online 和 Exchange Online 的访问权限,但不应具有 SharePoint Online 或 Office Online 的访问权限。能否以这种方式对帐户进行限制?事实上这是可行的。为了解释其工作原理,现在我们采用一种两步方法来处理此问题:
向用户分配一个自动启用所有服务的 Office 365 许可证。
运行一对 Office 365 PowerShell 命令,为该用户禁用指定的服务。
我们已执行第 1 步:我们的用户 (Belinda Newman) 具有 Office 365 许可证,使其可以访问所有 Office 365 服务。但是,我们希望修改 Belinda 的帐户,使其不具备 SharePoint Online (SHAREPOINTENTERPRISE
) 或 Office Online (SHAREPOINTWAC
) 的访问权限。应如何执行此操作?
方法如下:首先,使用 New-MsolLicenseOptions cmdlet 创建一个包含想要禁用的服务的 LicenseOption 对象。对于 Belinda,我们想要禁用SHAREPOINTENTERPRISE
和 SHAREPOINTWAC
,因此我们使用此命令:
$x = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE"
看出具体的工作原理了吗?您指定许可计划 (litwareinc:ENTERPRISEPACK
),然后指明您想要禁用的每项服务,使用逗号将这些服务分开。
$x
,尽管您可以使用任何有效的 Windows PowerShell 变量名称。现在,我们可以使用以下命令禁用 Belinda 对这两项服务的访问权限:
Set-MsolUserLicense -UserPrincipalName BelindaN@litwareinc.com -LicenseOptions $x
没有太复杂的操作,只需:调用 Set-MsolUserLicense cmdlet 并包含 LicenseOptions 参数,以及包含我们想要禁用的计划的变量 ($x
)。现在当我们通过运行以下命令 ((Get-MsolUser -UserPrincipalName belindan@litwareinc.com).Licenses.ServiceStatus
) 查看 Belinda 的许可证信息时会看到什么?如下:
ServicePlan ProvisioningStatus----------- ------------------SWAY SuccessINTUNE_O365 SuccessYAMMER_ENTERPRISE PendingInputRMS_S_ENTERPRISE SuccessOFFICESUBSCRIPTION SuccessMCOSTANDARD SuccessSHAREPOINTWAC DisabledSHAREPOINTENTERPRISE DisabledEXCHANGE_S_ENTERPRISE Success
很酷吧?当然,如果愿意,我们可以对多个用户执行此相同操作。例如,此命令将为所有许可用户禁用此相同的两项服务:
Get-MsolUser | Where-Object {$_.isLicensed -eq $True} | Set-MsolUserLicense -LicenseOptions $x
请记住,Belinda 仍具有有效的 Office 365 许可证;只是现在她能访问的服务更少。在我们禁用这两项服务之前,Belinda 可以访问新闻源、OneDrive 和 SharePoint Online 站点:
现在这些选项对她不再可用:
这正是我们希望发生的。
如果我们稍后改变主意:能否重新启用这些服务?当然可以。要为某个用户重新启用所有服务,只需使用此命令创建以下 LicenseOption 对象:
$x = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans $null
该命令可以执行哪些操作?首先,Windows PowerShell 常量 $null
意味着什么都没有。(或者用一种技术性更强的语言来说,它表示“空值”。)您应该还记得,当我们使用 New-MsolLicenseOptions cmdlet 时,必须指明我们想要禁用的服务。在这种情况下,我们不想禁用任何服务。这可能会让您相信,我们可以使用如下所示的命令,即没有为 DisabledPlans 参数指定值的命令:
$x = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans ""
但是,这不起作用。相反,它将生成一个错误消息:
Set-MsolUserLicense : Cannot bind parameter 'LicenseOptions'. Cannot convert the "" value of type "System.String" to type "Microsoft.Online.Administration.LicenseOption".
幸运地是,将该参数值设置为 $null
是可行的:
$x = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans $null
这就意味着,当您运行 Set-MsolUserLicense cmdlet 时,我们将告诉 Set-MsolUserLicense,我们不希望 Belinda 被禁止访问任何服务:
Set-MsolUserLicense -UserPrincipalName BelindaN@litwareinc.com -LicenseOptions $x
如果没有禁用任何服务,这必须意味着所有服务都已启用,这很合理。
现在您已清楚这一切如何工作,我们将向您演示如何签发许可证并禁用指定服务,只需使用同一个命令即可。这听起来令人印象深刻,但老实说,没有任何关系:您只需在同一个命令中同时包含 AddLicenses 和 LicenseOptions 参数。换句话说,您需要首先创建 LicenseOption 对象:
$x = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE"
然后如前所述,在命令中使用 AddLicenses 和 LicenseOptions 参数:
Set-MsolUserLicense -UserPrincipalName BelindaN@litwareinc.com -AddLicenses "litwareinc:ENTERPRISEPACK" -LicenseOptions $x
该命令将向 Belinda Newman 签发一个新的许可证,但在该许可证中禁用了 Skype for Business Online (SHAREPOINTWAC
) 和 SharePoint Online (SHAREPOINTENTERPRISE
)。
返回顶部
- 使用 Office 365 PowerShell 管理用户帐户和许可证(六)
- 使用 Office 365 PowerShell 管理用户帐户和许可证(三)使用 Office 365 PowerShell 向用户帐户分配许可证
- 使用 Office 365 PowerShell 管理用户帐户和许可证
- 使用 Office 365 PowerShell 管理用户帐户和许可证(十)使用 Office 365 PowerShell 创建用户帐户
- 使用 Office 365 PowerShell 管理用户帐户和许可证(一)使用 Office 365 PowerShell 查看许可证和服务
- 使用 Office 365 PowerShell 管理用户帐户和许可证(七) Office 365 许可和 Windows PowerShell:删除许可证
- 使用 Office 365 PowerShell 管理用户帐户和许可证(九)使用 Office 365 PowerShell 删除和还原用户账户
- 使用 Office 365 PowerShell 管理用户帐户和许可证(八)使用 Office 365 PowerShell 冻结用户账户
- 使用 Office 365 PowerShell 管理用户帐户和许可证(四)查看服务的许可信息
- 使用 Office 365 PowerShell 管理用户帐户和许可证(五)Assign roles to user accounts with Office 365 PowerShell
- 使用 Office 365 PowerShell 管理用户帐户和许可证(十一)View user accounts with Office 365 PowerShell
- 使用 Office 365 PowerShell 管理用户帐户和许可证(十二)Configure user account properties with Office 365 PowerShel
- 使用 Office 365 PowerShell 管理用户帐户和许可证(二)使用 Office 365 PowerShell 查看授权和未授权的用户
- Windows PowerShell 管理 Office 365
- [转贴]linux用户和组帐户管理
- linux用户和组帐户管理
- 域用户帐户和组的管理
- linux用户和组帐户管理
- [leetcode]: 521. Longest Uncommon Subsequence I
- 银行家算法(文件读入输出)
- Redis文档链接(含官方中文)
- css小细节罗列
- CSS3标准中nth-child()用法
- 使用 Office 365 PowerShell 管理用户帐户和许可证(六)
- 【Shader】用 Shader 画点和线
- jfreechart简单介绍1---条形图
- 微信小程序 tabBar
- “Error: Timeout of 25000ms reached for https://github.com/driftyco/ionic2-app-base/archive/master.ta
- Spring的PropertyPlaceholderConfigurer应用
- unity Slider的具体使用
- Linux下的源码安装服务,配置服务为系统服务启动
- 海航集团与陕西省人民政府签订战略合作协议 破海航负债倒闭谣言