当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 创建新的 Microsoft 365 帐户

作者:精品下载站 日期:2024-12-14 04:05:27 浏览:13 分类:玩电脑

使用 PowerShell 创建新的 Microsoft 365 帐户


自动化很有用

创建新的 Microsoft 365 帐户的最简单方法是通过 Microsoft 365 管理中心。微软在过去几年里做了很多工作来平滑 GUI 和平滑流程。但有一个替代方案是件好事,特别是当需要接受人力资源系统等来源的输入并为新员工创建帐户时。在大多数情况下,组织将使用 PowerShell 来实现这种自动化。

其他自动化技术也适用,例如 Daler Sayfiddinov 文章中描述的 SharePoint Online、Flow 和 Power Apps 的组合。这对我来说有点复杂,所以让我们看看我们可以使用简单的 PowerShell 做什么。

到目前为止,大多数想要自动创建 Azure AD 帐户的管理员都使用 Azure AD 模块。 Microsoft 计划可能在 2022 年底弃用 Azure AD 模块。Azure AD cmdlet 将在没有支持的情况下继续工作,因此可以继续使用它们。

这些文章更深入地介绍了 Microsoft Graph PowerShell SDK 以及从 Azure AD 模块的转换:

连接到 Microsoft Graph for PowerShell SDK

使用 Microsoft Graph for PowerShell SDK 报告 Azure AD 登录。

将基于证书的身份验证与 Microsoft Graph PowerShell SDK 结合使用。

Microsoft 强制从 Azure AD Cmdlet 迁移到许可证管理。

将适用于 PowerShell 的 Microsoft Graph SDK 与 Azure 自动化结合使用。

使用 New-AzureADUser 创建新的 Azure AD 帐户

所有 Microsoft 365 帐户均以 Azure AD 帐户开始。正如我们稍后将讨论的,分配 Microsoft 365 许可证会将 Azure AD 帐户转换为可以登录并使用 Microsoft 365 应用程序的对象。有两种方法可以使用 PowerShell 创建新的 Azure AD 帐户。第一个是 Azure AD 模块中的 New-AzureADUser cmdlet。第二个是 Microsoft Graph PowerShell SDK 中的 New-MgUser cmdlet。

帐户需要一个初始密码,因此让我们创建一个用于新帐户的密码。 Azure AD 使用密码配置文件来保存密码设置。在此示例中,我们使用密码和开关填充设置,以强制用户在首次登录后更改密码。

$NewPassword = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$NewPassword.Password = "!NewPassword2022!"
$NewPassword.ForceChangePasswordNextLogin = $True

除了密码之外,创建基本 Azure AD 帐户所需的其他属性包括:

  • UserPrincipalName:用于登录 Microsoft 365 的值。在大多数组织中,如果帐户启用了电子邮件,则此值也用作主 SMTP 地址。
  • DisplayName:出现在各种 GUI 中的人性化名称。
  • MailNickName:也称为邮箱别名。如果帐户启用邮件,将使用此选项。
  • AccountEnabled:设置为 True 以激活帐户。

这些属性结合起来创建了一个简单的 Azure AD 帐户。该帐户可以使用,但您应该为其他属性提供值,以便当人们查看帐户所有者的详细信息时该帐户更有用。在许多情况下,这些属性来自人力资源部门。其他的则由 IT 设置,例如使用位置。这是一个两个字符的 ISO-3166 国家/地区代码,用于显示帐户使用服务的位置,正确设置该值非常重要,这样许可证分配才能正常工作。以下是创建新帐户的更全面填充命令的示例:

New-AzureADUser -UserPrincipalName "[email protected]" -DisplayName "Sue Ricketts (Operations)" -PasswordProfile $NewPassword -AccountEnabled $True -MailNickName Sue.Ricketts -City NYC -CompanyName "Practical 365" -Country "United States" -Department "Operations" -JobTitle "GM Operations" -TelephoneNumber "+1 676 830 1101" -Mobile "+1 617 4466615" -State "New York" -StreetAddress "1, Avenue of the Americas" -Surname "Ricketts" -GivenName "Sue" -UsageLocation "US" -PhysicalDeliveryOfficeName "NYC"

如果帐户创建成功,Azure AD 将返回该帐户的唯一对象标识符并确认显示名称和用户主体名称。使用 PowerShell 时,帐户的唯一标识符或对象标识符非常重要,因为它用于告诉 Azure AD 您要管理哪个对象。

ObjectId                             DisplayName               UserPrincipalName                UserType
--------                             -----------               -----------------                --------
3a6116ab-0116-490e-bd60-7e0cd9f36c9d Sue Ricketts (Operations) [email protected] Member

使用 New-MgUser 创建新的 Azure AD 帐户

与继承登录帐户权限的 Azure AD 模块不同,与 Microsoft Graph PowerShell SDK 的连接会设置会话期间所需权限的范围。在本例中,由于 New-MgUser cmdlet 执行目录更新,因此我们连接的范围为 Directory.ReadWrite.All

Connect-MgGraph -Scope Directory.ReadWrite.All

如本文所述,Microsoft Graph PowerShell SDK 使用的服务主体会随着时间的推移积累权限,因此服务主体可能已经拥有该权限。如果没有,系统会要求您征得管理员同意。

使用 Microsoft Graph PowerShell SDK 中的 New-MgUser cmdlet 创建新的 Azure AD 帐户需要一个哈希表来存储密码设置:

$NewPassword = @{}
$NewPassword["Password"]= "!NewPassword2022!"
$NewPassword["ForceChangePasswordNextSignIn"] = $True

New-MgUser 使用的某些属性名称与 New-AzureADUser 使用的属性名称不同。此代码创建与 New-AzureADUser 示例中相同的用户帐户:

New-MgUser -UserPrincipalName "[email protected]" -DisplayName "Sue Ricketts (Operations)" -PasswordProfile $NewPassword -AccountEnabled -MailNickName Sue.Ricketts -City NYC -CompanyName "Practical 365" -Country "United States" -Department "Operations" -JobTitle "GM Operations" -BusinessPhones "+1 676 830 1101" -MobilePhone "+1 617 4466615" -State "New York" -StreetAddress "1, Avenue of the Americas" -Surname "Ricketts" -GivenName "Sue" -UsageLocation "US" -OfficeLocation "NYC"

图 1 显示了通过 Microsoft 365 管理中心查看的新 Azure AD 帐户的详细信息。

[玩转系统] 使用 PowerShell 创建新的 Microsoft 365 帐户

为了完善新帐户,您应该添加一张照片,以便它显示在 Teams 等应用程序的用户个人资料卡中。我的观点是所有 Microsoft 365 帐户都应该有照片。

使用 Azure AD 分配许可证

我们的 Azure AD 帐户功能齐全,用户可以登录。但是,他们需要许可证才能使用 Microsoft 365 执行任何操作。第一步是发现可分配哪些许可证。或者更确切地说,有哪些产品 SKU 可用。 Get-AzureADSubscribedSKU cmdlet 显示租户中安装的产品列表:

Get-AzureADSubscribedSKU | Format-Table SkuPartNumber, SkuId, ConsumedUnits

SkuId                                SkuPartNumber                        ConsumedUnits
-----                                -------------                        -------------
1f2f344a-700d-42c9-9427-5cea1d5d7ba6 STREAM                                           3
b05e124f-c7cc-45a0-a6aa-8cf78c946968 EMSPREMIUM                                       4
6fd2c87f-b296-42f0-b197-1e91e994b900 ENTERPRISEPACK                                 125
f30db892-07e9-47e9-837c-80727f46fd3d FLOW_FREE                                       10
a403ebcc-fae0-4ca2-8c8c-7a907fd6c235 POWER_BI_STANDARD                                6
26d45bd9-adf1-46cd-a9e1-51e9a5524128 ENTERPRISEPREMIUM_NOPSTNCONF                     5
710779e8-3d4a-4c88-adb9-386c958d1fdf TEAMS_EXPLORATORY                                2
90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96 SMB_APPS                                         2
8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b RIGHTSMANAGEMENT_ADHOC                           6

可在线获取全套 Microsoft 365 SKU 和标识符的列表。该列表允许您将内部 Microsoft SKU 名称解析为市场名称。例如,EnterprisePack 表示 Office 365 E3。为了分配许可证,我们使用我们要使用的许可证的标识符创建一个许可证对象,并创建一个许可证分配对象来表示我们要添加所选的许可证。最后,Set-AzureADUserLicense cmdlet 使用其对象标识符将许可证应用到帐户。

$NewLicense = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$NewLicense.SkuId = “f30db892-07e9-47e9-837c-80727f46fd3d”
$LicenseAssignment = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$LicenseAssignment.AddLicenses = $NewLicense
Set-AzureADUserLicense -ObjectId "3a6116ab-0116-490e-bd60-7e0cd9f36c9d" -AssignedLicenses $LicenseAssignment

使用 Microsoft Graph PowerShell SDK 分配许可证

Get-MgSubscribedSku 是使用 Microsoft Graph PowerShell SDK 返回产品列表的 cmdlet。可以获得相同的信息:

Get-MgSubscribedSku | Format-Table SkuPartNumber, SkuId, ConsumedUnits

SkuId                                SkuPartNumber                        ConsumedUnits
-----                                -------------                        -------------
1f2f344a-700d-42c9-9427-5cea1d5d7ba6 STREAM                                           3
b05e124f-c7cc-45a0-a6aa-8cf78c946968 EMSPREMIUM                                       4
6fd2c87f-b296-42f0-b197-1e91e994b900 ENTERPRISEPACK                                 125
f30db892-07e9-47e9-837c-80727f46fd3d FLOW_FREE                                       10
a403ebcc-fae0-4ca2-8c8c-7a907fd6c235 POWER_BI_STANDARD                                6
26d45bd9-adf1-46cd-a9e1-51e9a5524128 ENTERPRISEPREMIUM_NOPSTNCONF                     5
710779e8-3d4a-4c88-adb9-386c958d1fdf TEAMS_EXPLORATORY                                1
90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96 SMB_APPS                                         2
8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b RIGHTSMANAGEMENT_ADHOC                           6

使用 Microsoft Graph PowerShell SDK 分配许可证更加简单,因为我们可以传递 SKU 标识符,而无需先进行设置。

Set-MgUserLicense -UserId "[email protected]" -Addlicenses @{SkuId = '1f2f344a-700d-42c9-9427-5cea1d5d7ba6'} -RemoveLicenses @() 

将许可证分配给帐户后,您可以通过运行 Get-MgUserLicenseDetail cmdlet 检查是否已准备好正确的许可证:

Get-MgUserLicenseDetail -UserId [email protected] | Format-Table SkuId, SkuPartNumber

SkuId                                SkuPartNumber
-----                                -------------
1f2f344a-700d-42c9-9427-5cea1d5d7ba6 STREAM
710779e8-3d4a-4c88-adb9-386c958d1fdf TEAMS_EXPLORATORY
8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b RIGHTSMANAGEMENT_ADHOC
f30db892-07e9-47e9-837c-80727f46fd3d FLOW_FREE

Office 365 许可报告文章提供了有关处理 SKU、产品标识符等的更多信息。

使用新帐户登录

对我们新创建并获得许可的帐户的真正测试是登录并执行一些操作。由于创建帐户时使用的密码配置文件要求在首次登录时更改密码,因此用户被迫更新其帐户(图 2)。

[玩转系统] 使用 PowerShell 创建新的 Microsoft 365 帐户

登录后,新帐户可以访问其拥有许可证的任何 Microsoft 365 服务。在图 3 中,新帐户正在 Teams 对话中进行对话。我想一切都会好起来的!

[玩转系统] 使用 PowerShell 创建新的 Microsoft 365 帐户

使用 PowerShell 创建新的 Azure AD 帐户并不难。像许多任务一样,准备是关键。了解您要为其创建帐户的用户的详细信息,并了解可用于分配的许可证,一切都会顺利进行。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯