Office 365 PowerShell 的用户管理方案

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

使用以下 PowerShell 方案从文件快速添加用户帐户、分配许可证、管理通讯组成员身份以及设置密码。

自动导入多个用户

可自动将多个用户导入 Office 365 并节省大量时间。 若要导入大量用户,需要先使用相关用户信息准备逗号分隔值文件 (CSV) 文件。 创建用户帐户所需的最基本信息是显示名称和用户主体名 (UPN)。

UPN 是电子邮件地址格式的用户名称。用户名(user name 或 username)后依次跟“@”、Office 365 订阅的 Internet 域名。示例 UPN 为 belindan@contoso.com。还可为任意可写的用户帐户属性(如位置、联系电话和地址)提供数据。

对于基本用户帐户属性(如 UPN 和显示名称),请准备包含以下两列标题的 CSV 文件:

  • UserPrincipalName,DisplayName

接下来,通过键入 UPN 和显示名称(以逗号分隔)在 CSV 的每一行上添加新用户帐户。

注意: 因为你没有为每个新帐户指定密码,Office 365 将生成它们。

将 CSV 文件存储在你可以访问的位置,如 C:\O365Admin\NewUsers.CSV。现在即可创建用户帐户。

首先,需要使用用于 Windows PowerShell 的 Microsoft Azure Active Directory 模块连接到 Office 365。请参阅连接到 Office 365 PowerShell 中的说明。

然后,在双引号之间填写路径和文件名,删除说明文本和 < and > 字符。

$fileName="<path and file name of the CSV file, example C:\O365Admin\NewUsers.CSV>"
Import-Csv $fileName | ForEach { New-MsolUser -UserPrincipalName  $_.UserPrincipalName -DisplayName $_.DisplayName }

从用于 Windows PowerShell 的 Microsoft Azure Active Directory 模块窗口运行生成的命令。

有关用户帐户的详细信息,请使用以下列标题准备 CSV 文件,并根据需要填充用户行:

  • UserPrincipalName,DisplayName,FirstName,LastName,Title,Password,UsageLocation,Office,Department,MobilePhone,StreetAddress,City,State,PostalCode,Country

注意: 列标题不应包含空格,因为每个列标题都需要被 Import-Csv 命令的 $_ 元素引用。仅需要 UserPrincipalName 和 DisplayName 字段,并且将跳过空白值。 UsageLocation 代码是用户所在区域的双字符 ISO 代码。

将 CSV 文件存储在你可以访问的位置,如 C:\O365Admin\NewUsers.CSV。现在即可将其作为用户帐户导入。

填写 CSV 文件的文件名,然后运行生成的命令。

$fileName="<path and file name of the CSV file, example C:\O365Admin\NewUsers.CSV>"
Import-Csv $fileName | ForEach { New-MsolUser -UserPrincipalName   $_.UserPrincipalName -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName -Title $_.Title -Department $_.Department -Office $_.Office -MobilePhone $_.MobilePhone -StreetAddress $_.StreetAddress -City $_.City -State $_.State -PostalCode $_.PostalCode -Country $_.Country -Password $_.Password }

在 Office 365 中分配许可证

若要使用户具有 Office 365 的完全访问权限,需要为其分配 Office 365 许可证。 在此方案中,会将许可证分配给用户帐户。

首先,需要使用用于 Windows PowerShell 的 Microsoft Azure Active Directory 模块连接到 Office 365。请参阅连接到 Office 365 PowerShell 中的说明。

在向用户分配许可证之前,必须根据其区域的双字符 ISO 代码设置该用户帐户的使用位置。 使用位置会指定要使用服务的国家/地区,并确定在该地区可用的被许可功能。例如,US 是指美国。以下是基于用户帐户 UPN 来设置使用位置的示例:

Set-MsolUser -UserPrincipalName user@contoso.com -UsageLocation US

若要查看可用许可证的列表、其帐户 SKU 以及待分配数量,请运行以下命令:

Get-MsolAccountSku

然后,填写用户帐户的许可证和 UPN,从用于 Windows PowerShell 的 Microsoft Azure Active Directory 模块窗口运行生成的命令。

$license="<the appropriate value of AccountSkuId from the Get-MsolAccountSku command>"
$userUPN="<the UPN of the user account>"
UserLicense -UserPrincipalName $userUPN -AddLicenses $license

为多个用户分配许可证

在上一方案中,你已将许可证分配给单个用户帐户。将许可证分配给多个用户需要更多步骤,但对大量用户帐户来说,所花时间是值得的。

首先,需要使用用于 Windows PowerShell 的 Microsoft Azure Active Directory 模块连接到 Office 365。请参阅连接到 Office 365 PowerShell 中的说明。

首先,通过此命令显示可用许可证的列表、其帐户 SKU 以及待分配数量:

Get-MsolAccountSku

若要显示未经许可用户的列表,请使用此命令:

Get-MsolUser -UnlicensedUsersOnly

若要将未经许可用户的列表保存到 CSV 文件中,可从其中使用列表来选取要分配许可证的用户帐户、填写路径和文件名,然后运行生成的命令。

$fileName="<path and file name of the CSV file, example: c:\reports\Unlicensed_Users.CSV>"
Get-MsolUser -UnlicensedUsersOnly | Export-Csv $fileName

还可以使用 Where 命令根据更具体的标准(例如美国的标准)来显示未经许可用户的帐户列表。此处为一个示例:

Get-MsolUser -All -UnlicensedUsersOnly | Where {$_.Country -eq "United States"}

使用这些命令指定用户帐户属性及其必填值,并显示一组特定的未经许可用户,然后运行生成的命令:

$userPropertyName="<name of the user property>"
$userPropertyValue="<value of the user property>"
Get-MsolUser -All -UnlicensedUsersOnly | Where {$_.$userPropertyName -eq $userPropertyValue}

若要获取用户帐户属性的列表,请填写任意用户帐户 UPN,然后运行生成的命令。

$userUPN="<the UPN of any user account>"
Get-MsolUser -UserPrincipalName $userUPN | Select * | More

以下示例显示伦敦的所有未经许可用户:

$userPropertyName="City"
$userPropertyValue="London"
Get-MsolUser -All -UnlicensedUsersOnly | Where {$_.$userPropertyName -eq $userPropertyValue}

确定一组用户帐户后,就可将其与 Set-MsolUserLicense cmdlet 结合起来,为每个用户帐户分配许可证。填写许可证、属性名称及其值,然后运行生成的命令。

$license="<the appropriate value of AccountSkuId from the Get-MsolAccountSku command>"
$userPropertyName="<name of the user property>"
$userPropertyValue="<value of the user property>"
Get-MsolUser -All -UnlicensedUsersOnly | Where {$_.$userPropertyName -eq $userPropertyValue}  | Set-MsolUserLicense -AddLicenses $license

以下是将 Contoso 的 Office 365 E5 许可证分配给伦敦所有未经许可用户帐户的示例:

$license="contoso:ENTERPRISEPACK"
$userPropertyName="City"
$userPropertyValue="London"
Get-MsolUser -All -UnlicensedUsersOnly | Where {$_.$userPropertyName -eq $userPropertyValue}  | Set-MsolUserLicense -AddLicenses $license

管理通讯组收件人

可使用通讯组创建电子邮件通讯组列表。仅能通过电子邮件应用程序(如 Microsoft Outlook)使用通讯组将电子邮件发送给用户集合。 在此方案中,你可以使用 PowerShell 管理通讯组的收件人。

首先,你需要连接到 Exchange Online。若要使用帐户用户名和密码连接到 Exchange Online,请参阅连接到 Exchange Online PowerShell。若要安装 Microsoft Exchange Online 远程 PowerShell 模块并使用 MFA 进行连接,请参阅使用多重身份验证连接到 Exchange Online PowerShell

若要将收件人添加到通讯组,请填写通讯组名称和用户帐户的 UPN,然后运行生成的命令。

$distName="<name of the distribution group>"
$userUPN="<the UPN of the user account>"
Add-DistributionGroupMember -Identity $distName -Member $userUPN

若要删除通讯组中的收件人,请填写通讯组名称和用户帐户的 UPN,然后运行生成的命令。

$distName="<name of the distribution group>"
$userUPN="<the UPN of the user account>"
Remove-DistributionGroupMember -Identity $distName -Member $userUPN

为多个用户帐户设置密码

使用此方案在一组用户帐户上设置密码。 例如,每周都有一组新的志愿者过来帮忙一次,或者你提供在会议中使用的演示工作站。

批量密码更改可用于定期重置可重用帐户的密码。根据部门或其他条件指定一组用户,可根据该条件批量重置密码。 第一步是将 Office 365 用户帐户名称导出为 CSV 文件。

若要基于用户帐户属性和特定值将列表导出到 CSV 文件,请填写属性名称及其值以及 CSV 文件名,然后运行生成的命令。

$userPropertyName="<name of the user property>"
$userPropertyValue="<value of the user property>"
$fileName="<path and file name of the CSV file, example c:\O365Admin\userlist.csv>"
Get-MsolUser | Where {$_.$userPropertyName -eq $userPropertyValue} | select UserPrincipalName | Export-Csv $fileName -NoTypeInformation

以下示例将志愿者部门的所有成员导出到名为 c:\O365admin\volunteerslist.csv 的文件中:

$userPropertyName="Department"
$userPropertyValue="Volunteers"
$fileName="c:\O365admin\volunteerslist.csv"
Get-MsolUser | Where {$_.$userPropertyName -eq $userPropertyValue} | Select UserPrincipalName | Export-Csv $fileName -NoTypeInformation

查看 CSV 文件中包含的姓名,确保重置密码之前已标识正确的用户。 获得 CSV 格式的经验证的用户列表后,可通过 3 种简单的方法来创建新密码并将其分配给每位用户。

  1. 为 CSV 文件中的所有用户指定新密码并分配相同的密码。

    填写新密码 和 CSV 文件名,然后运行生成的命令。

    $pass="<the new password>"
    $fileName="<path and file name of the CSV file, example c:\O365Admin\userlist.csv>"
    Import-Csv $fileName | ForEach {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $pass -ForceChangePassword $True}
  2. 手动为 CSV 文件中的每个用户定义新密码。

    对于此选项,必须修改 CSV 文件。在 UserPrincipalName 旁新增一列,标记为 Password,然后为列表中的所有用户分配密码。填写 CSV 的文件名,然后运行生成的命令。

    $fileName="<path and file name of the CSV file, example c:\O365Admin\userlist.csv>"
    Import-Csv $fileName | ForEach {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.Password -ForceChangePassword $True}
  3. 让 Office 365 自动为 CSV 文件中的每个用户帐户生成密码。

    填写 CSV 的文件名,然后运行生成的命令。

    $fileName="<path and file name of the CSV file, example c:\O365Admin\userlist.csv>"
    Import-Csv $fileName | ForEach {[string[]]$a+= $_.UserPrincipalName + "  " + (Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -ForceChangePassword $True)} ;$a

注意: 所有这 3 个选项会在用户首次使用用户帐户登录时强制进行密码更改。为了防止发生这种情况,请从 Set-MSolUserPassword 命令删除 -ForceChangePassword $True

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

另请参阅

适用于 Office 365 管理员的 PowerShell

Office 365 PowerShell 方案

Office 365 PowerShell 的设置方案

Office 365 PowerShell 的报告方案

Office 365 PowerShell 的更多功能方案

Office 365 PowerShell 社区资源

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×