使用 PowerShell 管理 Office 365 中的用户
将域添加到 Office 365 环境(当然使用 PowerShell)后,您可能还想添加用户。在这篇博文中,我将讨论如何添加用户、添加和更改许可证、删除用户和更改密码设置。
使用 PowerShell 添加用户
使用 Get-MsolUser 命令获取 Azure Active Directory 中所有用户的概述(这些用户是在之前的博客文章中创建的):
并使用 Get-MsolAccountSku 命令查看可用的许可证:
在 Azure Active Directory 中创建新用户时,可以使用 New-MsolUser 命令,结合 Get-MsolAccountSku 命令的结果来获取许可证信息。您可以使用-LicenseAssignment和-UsageLocation选项来分配适当的许可证。
New-MsolUser -UserPrincipalName Santa@office365labs.nl -FirstName Santa -LastName Klaus -DisplayName 'Santa Klaus' -Password 'Pass2015' -ForceChangePassword:$TRUE -LicenseAssignment "inframan:ENTERPRISEPACK" -UsageLocation NL-ForceChangePassword 选项用于确保用户在首次登录在线门户或 OWA 时更改密码。可选的是 -BlockCredential $true 选项,该选项在 Azure Active Directory 中创建禁用或阻止的帐户。
当然,也可以通过 CSV 文件在 Azure Active Directory 中创建多个用户。例如,当使用以下 CSV 文件时:
您可以使用与此类似的 PowerShell 命令:
$Users = import-csv Bulk_Users.csv
ForEach ($User in $Users) {New-MsolUser -UserPrincipalName $User.UserName -FirstName $User.FirstName -LastName $User.LastName -DisplayName $User.DisplayName -Password 'Pass2015' -ForceChangePassword:$TRUE -LicenseAssignment "inframan:ENTERPRISEPACK" -UsageLocation NL}使用 PowerShell 更改许可证
要添加、删除或更改特定用户的许可证,您可以使用 Set-MsolUserLicense 命令,该命令接受 -AddLicenses 和 -RemoveLicenses 选项。例如,要向名为 Paul@office365labs.nl 的用户添加许可证,您可以使用如下命令:
Set-MsolUserLicense -UserPrincipalName paul@office365labs.nl -AddLicenses “inframan:ENTERPRISEPACK”或者删除用户的许可证:
Set-MsolUserLicense -UserPrincipalName paul@office365labs.nl -RemoveLicenses “inframan:ENTERPRISEPACK”您还可以结合使用-AddLicenses和-RemoveLicenses选项来替换许可证,例如:
Set-MsolUserLicense -UserPrincipalName paul@office365labs.nl -RemoveLicenses “inframan:ENTERPRISEPACK” -AddLicenses <other license>
也可以在订阅中仅使用特定的服务计划。例如,您可以使用 Get-MsolAccountSku 命令检索各个服务计划:
Get-MsolAccountSku | Where {$_.SkuPartNumber -eq “ENTERPRISEPACK”} | ForEach {$_.ServiceStatus}如果要禁用 Yammer、Rights Management Server、Office Web Apps 和 SharePoint Enterprise,可以使用以下命令:
$Options = New-MsolLicenseOptions -AccountSkuId inframan:ENTERPRISEPACK -DisabledPlans YAMMER_ENTERPRISE,RMS_S_ENTERPRISE,SHAREPOINTWAC,SHAREPOINTENTERPRISE
Set-MsolUserLicense -UserPrincipalName john@office365labs.nl -LicenseOptions $Options当您使用 Microsoft 在线门户进行检查时,您将看到该用户不再可以使用各项服务:
请小心删除许可证。当您执行此操作时,存储在随附应用程序中的数据也将被删除!
使用 PowerShell 阻止用户
当用户离开组织时,阻止其用户帐户的情况并不少见。您可以将 Set-MsolUser 命令与 -BlockCredential 选项结合使用,如下所示:
Set-MsolUser -UserPrincipalName john@office365labs.nl -BlockCredential $true要再次启用该帐户,只需将 -BlockCredential 选项更改为 $false,如下所示:
Set-MsolUser -UserPrincipalName john@office365labs.nl -BlockCredential $false使用 PowerShell 删除用户
从 Azure Active Directory 中删除用户只需使用带有 -UserPrincipalName 选项的 Remove-MsolUser 命令即可。 -Fore 选项用于抑制通常在删除 PowerShell 命令后出现的确认,例如:
Remove-MsolUser -UserPrincipalName john@office365labs.nl -Force
下图中清晰可见的是省略 -Force 选项时的确认消息:
删除用户后,它们不会被永久删除,而是会存储在 Azure Active Directory 回收站中,并在那里再保留 30 天。只有这样它们才会(自动)永久删除。您可以将 -RemoveFromRecycleBin 选项与 Remove-MsolUser 命令结合使用来永久删除用户帐户,而不将其临时存储在回收站中。
请注意,当您删除用户帐户时,用户的数据也会被删除!
从回收站恢复用户
如上一节所述,当使用Remove-MsolUser 命令删除用户时,用户将存储在回收站中。要获取位于回收站中的所有用户的列表,您可以使用带有 -ReturnDeletedUsers 选项的 Get-MsolUser 命令,如下所示:
Get-MsolUser -ReturnDeletedUsers如下图所示:
要从回收站恢复用户 john@officd365labs.nl,您可以使用带有 -UserPrincipalName 的 Restore-MsolUser 命令,如下所示:
Restore-MsolUser -UserPrincipalName john@office365labs.nl使用 PowerShell 更改密码和密码策略
管理员更改用户密码的情况并不罕见,在 Office 365 环境中这也不例外。要使用 PowerShell 重置用户密码,您可以使用 Set-MsolUserPassword 命令以及 -UserPrincipalName 和 -NewPassword 选项,例如:
Set-MsolUserPassword -UserPrincipalName john@office365labs.nl -NewPassword ‘Pass2015’ -ForceChangePassword $TRUE-ForceChangePassword 将确保用户在首次登录 Office 365 后更改其密码。
默认情况下,Azure Active Directory 中的用户密码每 90 天过期一次,通知间隔为 14 天。要更改密码策略,您可以将 Set-MsolPasswordPolicy 与 -DomainName、-ValidityPeriod 和 -NotificationDays 一起使用> 选项,如下所示:
Set-MsolPasswordPolicy -ValidityPeriod 60 -NotificationDays 14 -DomainName office365labs.nlValidityPeriod 确定密码可以使用的时间,范围可以从 14 天到 730 天(2 年)。 NotificationDays 是用户在密码过期之前收到通知的天数。该时间范围为 1 天到 30 天。
要将用户的密码设置为永不过期(这不是最佳实践,但对于服务帐户密码非常有用,例如在设置目录同步时),您可以使用 Set-MsolUser命令,例如:
Set-MsolUser -UserPrincipalName SA_DirSync@inframan.nl -PasswordNeverExpires $true有关详细信息,您可以查看 TechNet 上的管理 Azure AD 用户:https://msdn.microsoft.com/en-us/library/azure/dn919674.aspx