前15个Office 365 PowerShell命令(用户、组、许可证)。作为一个Windows PowerShell用户,我知道对很多Office 365用户来说,使用PowerShell进行Office 365管理可能看起来很复杂。
然而,根据我的经验,尽管如此,Windows PowerShell是管理Office 365的一种非常有用的工具。例如,管理员可以通过输入几行代码轻松获得他们所需的内容,而不是在Office 365门户中查找各种可用选项。因此,学习一些方便的命令对于简化您的Office 365体验至关重要。
考虑到这一点,让我们学习最常用的15个Office 365 PowerShell命令,这些命令可以帮助简化Office 365任务。
Office 365 PowerShell命令前15名(用户、组、许可)
图片来源:Pixabay
1. 为Microsoft 365组创建分类
当您组织中的用户创建Microsoft 365组时,您可以为他们提供分配敏感度标签的选项。需要注意的是,一旦启用敏感度标签,创建组的用户将不再能够使用他们之前使用的分类标签。
微软建议使用敏感度标签代替之前的小组分类功能。您可以在组织中创建分类,用户在创建Microsoft 365组时可以设置这些分类。例如,您可以允许用户在创建的组上设置“标准”、“秘密”和“绝密”。以下是创建组分类的适当Azure Active Directory命令。
下面的命令创建一个分类列表:
$setting["ClassificationList"] = "Low Impact, Medium Impact, High Impact"
您可以使用设置属性ClassificationDescriptions来定义每个分类。语法如下:
$setting["ClassificationDescriptions"] ="Classification:Description,Classification:Description"
示例命令:
$setting["ClassificationDescriptions"] = "Low Impact: General communication, Medium Impact: Company internal data , High Impact: Data that has regulatory requirements"
或者,在创建具有分类的新组时执行此命令:
New-UnifiedGroup -Classification -AccessType
启用这些设置后,组所有者现在将能够从Outlook Web版和Outlook中的编辑组页面的下拉菜单中选择一个标签并保存它。
2. 授予用户以Microsoft 365组身份发送邮件的权限
图片来源:Unsplash
启用此设置后,Microsoft 365组的成员可以使用任何版本的Outlook或Outlook网页版以组的名义撰写和回复电子邮件。
为此,请使用Add-RecipientPermission和Get-RecipientPermission命令行工具来启用您的Microsoft 365组的“发送为”选项。
要向组地址发送电子邮件,用户需要访问该组,撰写新邮件,然后将“发送为”字段编辑为“组”。
您还可以通过Exchange管理中心执行此操作。要修改某个用户对特定组的权限,请使用适当的组别名和用户别名运行以下脚本。此脚本需要访问Exchange Online PowerShell,这可以通过连接到Exchange Online来获得。
PowerShell:
$groupAlias = ""
$userAlias = ""
$groupsRecipientDetails = Get-Recipient -RecipientTypeDetails groupmailbox -Identity $groupAlias
Add-RecipientPermission -Identity $groupsRecipientDetails.
Name -Trustee $user
Alias -AccessRights SendAs
运行并执行此命令后,用户可以通过在Outlook或Outlook网页版中将组的电子邮件地址输入到“发件人”字段中,来代表该组发送邮件。
3. 使用PowerShell获取Office 365用户的完整列表
使用Get-MsolUser命令来编译一份Office 365用户及其相关许可证的列表。此命令返回每个具有有效许可证的Office 365租户用户的部门、显示名称、城市和对象ID。
Get-MsolUser | Select DisplayName, City, Department, ObjectID
通常在管理Office365时,您可能需要查看账户许可证总数。为此,请运行以下cmdlet:
Get-MsolAccountSku
如果您想查看可用服务的列表,您需要运行以下脚本:
Select "Get-MsolAccountSku | -ExpandProperty ServiceStatus"
4. 从全局地址列表(GAL)中隐藏Microsoft 365组
Microsoft允许您指定Microsoft 365组是否显示在GAL或其他公司范围内的分发列表中。
例如,如果由于某种原因,您不希望某个组出现在全局地址列表中。要从地址列表中删除该组的条目,您需要运行以下Set-Unified Group cmdlet。
Set-UnifiedGroup -Identity "Legal Department" -HiddenFromAddressListsEnabled $true
另请阅读部署Office 365用户报告
使用InfraSOS运行Office 365报告(数百种报告)
来试试我们吧,免费体验所有功能。提供200多个广告报告模板,轻松定制您自己的广告报告。
5. 确保只有内部用户可以向Microsoft 365组发送消息
图片来源:Pixabay
Microsoft 365 组的设置可以调整,以防止来自组外组织用户的消息。此设置确保您的组织之外的任何人无法通过电子邮件向您的组发送电子邮件。
启用此设置后,来自组外用户的任何消息都将被忽略。
为此,请运行以下Set-UnifiedGroup cmdlet命令。
Set-UnifiedGroup -Identity "Internal senders only" -RequireSenderAuthenticationEnabled $true
6. 修改Microsoft 365组的显示名称
Microsoft 365 群组的名称在显示名称中指定。这是在Exchange或Microsoft 365控制面板中出现的名称。通过使用Set-UnifiedGroup命令,您可以更改群组的显示名称,或者为现有的Microsoft 365 Group指定一个新的名称。
要执行此操作,请运行以下命令:
Set-UnifiedGroup -Identity "[email protected]" -DisplayName "My new group"
7. 查看已获得许可的Microsoft 365用户
您的Microsoft 365组织的许可选项可能允许向用户账户发放一些、全部或不发放许可证。Microsoft 365的PowerShell允许您轻松识别哪些员工拥有有效的许可证,哪些没有。
运行以下命令以查看租户中可用的许可证:
Connect-Graph -Scopes User.Read.All, Organization.Read.All
执行此命令以查看特定帐户的许可证详细信息:
Get-MgUserLicenseDetail -UserId ""
例如:
Get-MgUserLicenseDetail -UserId "[email protected]"
运行此命令以查看组织中已被授予访问您许可计划权限的所有用户帐户(已许可用户)的完整列表。
Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName,DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses
Write-Host "Found $licensedUserCount licensed users."
运行此命令以查看组织中拥有E5许可证的用户帐户列表。
$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
Get-MgUser -Filter "assignedLicenses/any(x:x/skuId eq $($e5sku.SkuId) )" -ConsistencyLevel eventual -CountVariable e5licensedUserCount -All
Write-Host "Found $e5licensedUserCount E5 licensed users."
8. 查看未许可用户
要查看未许可用户,请运行以下命令:
Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All
Write-Host "Found $unlicensedUserCount unlicensed users."
执行此命令以查看组织中所有用户帐户(来宾帐户除外)的列表,这些帐户未被分配您的任何许可计划(未许可用户)。
Get-MgUser -Filter "assignedLicenses/`$count eq 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All
Write-Host "Found $unlicensedUserCount unlicensed users (excluding guests)."
9. 将MailTips集成到Microsoft 365组中
Office 365允许在向Microsoft 365组发送电子邮件时显示邮件提示。
要实现这一点,您需要使用Set-UnifiedGroup命令。
Set-UnifiedGroup -Identity "MailTip Group" -MailTip "This group has a MailTip"
Office 365还允许您通过MailTipTranslations设置为邮件提示定义替代翻译。
例如,如果您想要西班牙语版本,可以通过执行以下命令来获取:
Set-UnifiedGroup -Identity "MailaTip Group" -MailTip "This group has a MailTip" -MailTipTranslations "@{Add="ES:Esta caja no se supervisa."
10. 使用PowerShell在Office 365中更改密码
Set-MsolUserPassword -UserPrincipalName JSmith@Netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
11. 管理Office 365 组成员资格
Office 365 为管理员提供了使用Powershell管理Office 365成员资格的能力。作为管理员,您可能需要获取所有组列表。为此,您需要使用 Get-MsolGroup 命令。此命令允许您获取Office 365组的完整列表。
此外,您可以使用Add-MsolGroupMember命令将用户添加到组中:
Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
通过使用Get-MsolGroup命令,您还可以确定组的十六进制ID,该ID由GroupObjectId表示。您还可以通过执行此命令找到GroupMemberObjectId,即用户对象ID:
Get-MsolUser | Select ObjectID.
最后,作为管理员,如果您想将用户从组中移除,您可以使用Remove-MsoGroupMember cmdlet。
12. 在Office 365中创建报告
PowerShell用于在Office 365中生成各种报告。以下是创建Office 365报告的一些有用PowerShell命令。
获取所有邮箱的详细分析:
Get-mailbox | get-MailboxStatistics
如果您想查看过去30天内未被访问的完整非活动邮箱列表,您可以使用以下命令:
Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).
AddDays(-30) } | Format-Table DisplayName, LastLogonTime
要获取发送者和接收者的前报告,请执行以下命令:
Get-MailTrafficTopReport
运行以下脚本以获取所有组及其成员资格的报告:
function Get-AllO365Members
{
Try
{
$O365Groups=Get-UnifiedGroup
foreach ($O365Group in $O365Groups)
{
Write-Host "Group Membership: " $O365Group.DisplayName -ForegroundColor Green
Get-UnifiedGroupLinks –Identity $O365Group.Identity –LinkType Members
Write-Host
}
}
catch [System.Exception]
{
Write-Host -ForegroundColor Red $_.Exception.ToString()
}
}
Get-AllO365Members
需要注意的是,新的MS Graph Reporting API现已取代了大部分Powershell报告cmdlet。
13. 使用PowerShell从所有站点中删除用户
有时作为管理员,您可能需要从Office 365中删除用户。为此,请使用以下命令将用户从所有站点永久删除:
Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicr
14. 建立与Office 365实例的连接
要开始使用Office 365,必须下载并安装Windows PowerShell模块。请按照以下步骤操作。
首先,获取Microsoft Online Services登录助手(适用于IT专业人员RTW)并将其安装在您的计算机上。
第二步是在您的计算机上安装在线服务PowerShell模块,用于Azure Active Directory和Office 365:
这可以通过执行此命令来完成:
Install-Module -Name AzureAD
Install-Module -Name MSOnline
接下来,需要为Office 365提供管理员凭据:
$Cred = Get-Credential
第四步是创建远程Powershell会话。为此,请运行以下命令:
$O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
下一步是将会话命令导入本地Windows PowerShell会话:
Import-PSSession $O365
最后,通过以下方式连接到所有Office 365服务:
Connect-MsolService –Credential $O365
在导入了必要的Windows PowerShell模块之后,您现在可以开始管理Office 365。
15. 使用PowerShell连接到Exchange Online和SharePoint Online
Office365允许您建立与Microsoft Exchange Online或Microsoft SharePoint Online的连接。通过PowerShell连接到Exchange Online与连接到Office 365非常相似。为此,请运行以下代码:
$Cred = Get-Credential
$Session = New
-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
另一方面,连接到SharePoint Online的工作方式略有不同。在管理您的SharePoint Online租户之前,您需要安装SharePoint Online Management Shell插件。完成此操作后,您再执行以下PowerShell脚本:
$admin="[email protected]" $orgname="enterprise" $userCred = Get-Credential -UserName $admin -Message "Type the password." Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
结论:顶级Office 365 PowerShell命令(用户、组、许可证)
Powershell是管理Office 365的极其强大的工具。在Office 365中使用PowerShell进行管理就像在Microsoft Windows Server上一样快速简单。
然而,虽然可以轻松地使用Powershell进行修改,但建议您始终保留对您的Office 365环境所做的任何和所有修改的审计记录。这在您在后续遇到问题时有助于故障排除。
Source:
https://infrasos.com/top-15-office-365-powershell-commands-users-groups-licensing/