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

[玩转系统] 我使用 Teams PowerShell 的 10 种常用方法

作者:精品下载站 日期:2024-12-14 05:32:59 浏览:15 分类:玩电脑

我使用 Teams PowerShell 的 10 种常用方法


[玩转系统] 我使用 Teams PowerShell 的 10 种常用方法

以下是一些对所有 Microsoft Teams 管理员非常有用的 cmdlet(以及相应的说明)。达米安的前十名你已经知道几个?

介绍

使用 PowerShell 管理 Microsoft Teams 对于 Microsoft 365 中的管理员来说是一个福音,就像 Exchange PowerShell 一样,Teams PowerShell 也有大量可供管理员使用的 cmdets。 本文的目的是利用我们现有的资源,了解使用 Microsoft Teams PowerShell 的 10 种最常用方法。让我们开始吧。

一:许可用户

常见的入职任务是向用户授予他们需要访问的功能的许可证。在本节中,我们将使用 Microsoft Graph PowerShell 简要介绍该过程,虽然该过程仍然可以使用 MSOnline PowerShell 模块执行,但 Microsoft 将在明年弃用该模块。

要详细了解此内容,请查看 ScriptRunner 博客上之前的一篇博客文章,该文章可以在此处找到。

二:创建团队

当然,团队是 Microsoft Teams 体验的关键组成部分,因此,了解如何使用 PowerShell 创建团队也是一项有用的技能,特别是当您创建许多具有类似设置的团队时。

使用 PowerShell 创建团队不需要很多选项,事实上我们可以仅使用显示名称来创建团队:

New-Team -DisplayName 'Marketing Campaign - Big Corp, Inc.'

New-Team cmdlet 还有其他选项,例如提供描述:

New-Team -DisplayName 'Project Rebuild' -Description 'First project of 2024 (HR)'

或者也许为团队打开一项功能,例如搜索:

New-Team -DisplayName 'New Test Group' -ShowInTeamsSearchAndSuggestions $False

创建团队时,请记住,如果在创建时未设置某个功能,则大多数(如果不是全部)设置都可以在发布后使用 Set-Team cmdlet 进行修改。

三:创建 Teams 频道

创建团队后,我们可以添加团队频道来细分或组织每个团队的需求。 例如,我们现在有一个销售团队,在这个团队下,我们需要为公司拥有的每个销售驱动力创建渠道。 咨询公司可能为每个客户设立一个团队,然后为该客户的每个项目设立一个团队频道,以便隔离通信和内容共享。

示例 Cmdlet

New-TeamChannel -GroupId 933fe926-555a-4832-87d1-8f700736e003 -DisplayName 'Project 007'
New-TeamChannel -GroupId cfdba387-1319-4f6b-a883-8700046f07e7 -DisplayName 'Internal Sales'

请注意,我们需要组 ID 才能在该团队中创建团队频道。

四:创建后更改 Teams 设置

正如之前提到的,我们之前创建的团队也可以进行修改以满足新的需求或可能创建标准配置。 可以使用 Set-Team cmdlet 进行这些更改。 例如,如果我们想要更改团队成员在 Chanel 中可用的选项,例如贴纸和模因或提及:

Set-Team -GroupId d36f235f-d30e-4460-98a2-5728b906fbfd -GiphyContentRating Strict -AllowStickersAndMemes $False
Get-Team -DisplayName 'Marketing' | 
	Set-Team -AllowTeamMentions $False

或者也许我们想允许频道更新:

Set-Team -GroupId cfdba387-1319-4f6b-a883-8700046f07e7 -AllowCreateUpdateChannels $True
Get-Team -DisplayName 'HR Department' | 
	Set-Team -AllowGuestCreateUpdateChannels $False

关闭群组搜索:

Set-Team -GroupId cfdba387-1319-4f6b-a883-8700046f07e7 -ShowInTeamsSearchAndSuggestions $False

更改一些组信息,例如显示名称和描述:

Set-TeamChannel -GroupId cfdba387-1319-4f6b-a883-8700046f07e7 -CurrentDisplayName 'Internal Sales' -Description 'Sales Channel'

或者归档一个组:

Set-TeamArchivedState -GroupId 9ee34e55-60d6-49cf-8a64-1bc1454d7ee4 -Archived:$True

五:制定政策

除了团队和频道之外,PowerShell 还可以管理影响所有团队、用户或会议设置的全局策略。 通过修改这些设置,我们可以控制环境中 Teams 的使用,或许还可以使 Teams 遵守各种公司策略。

例如,我们可以打开转录(可能是 RnD 部门),以便他们可以在会议中利用此功能,但在其他策略中禁用它:

New-CsTeamsMeetingPolicy -Identity RnDPolicy -AllowTranscription $True

然后我们有用户准入或分组讨论室创建的设置:

New-CsTeamsMeetingPolicy -Identity 'MarketingPolicy' -AutoAdmittedUsers 'Everyone' -AllowBreakoutRooms $False

一旦策略列出并可用,我们就可以将该策略应用于用户:

Grant-CsTeamsMeetingPolicy -Identity 'Jsmith' -PolicyName 'ITDeptMeetings'

或者,如果策略设置失效或不再需要,我们可以将其删除:

Remove-CsTeamsMeetingPolicy 'RnDPolicy'

就像 Teams 一样,我们可以在创建策略后对其进行修改,并更改可能满足某些新标准的设置:

Set-CsTeamsMeetingPolicy -Identity 'ITPolicy' -AllowBreakoutRooms $False
Set-CsTeamsMeetingPolicy -Identity 'SalesPolicy' -AllowMeetNow $True

六:向团队添加成员

如果没有用户,Teams 会是什么样子? 嗯,实际上不多。 因此,使用 PowerShell,我们还可以将用户添加到 Microsoft Teams,以确保用户可以在客户端中访问他们所需的 Teams。 通过以下示例代码,我们可以使用源 CSV 文件,然后根据部门将成员添加到 Teams:

# Add Teams members
$CSV = Import-CSV 'TeamsUsers.csv'
Foreach ($MsolUser in $CSV) {
	$Department = $MsolUser.Department
	$Email = $MsolUser.PrimarySMTPAddress
	If ($Department -eq 'Marketing') {Add-TeamUser -GroupId $MarketingTeam.GroupId -User $Email}
	If ($Department -eq 'Sales') {Add-TeamUser -GroupId $SalesTeam.GroupId -User $Email}
	If ($Department -eq 'IT') {Add-TeamUser -GroupId $ITTeam.GroupId -User $Email}
	If ($Department -eq 'Management') {Add-TeamUser -GroupId $ManagementTeam.GroupId -User $Email}
}

七:团队角色分配

将角色分配给需要支持 Microsoft Teams 的人员是另一项重要任务,因为我们可以确保使用最少的权限,并且这些用户可以执行他们的任务。 值得注意的是,虽然这些角色分配可以使用 MSOnline PowerShell 模块完成,但该模块已被弃用,不应用于生产工作。 在下面的示例中,请确保首先使用适当的权限连接到 Microsoft Graph PowerShell。

首先,我们可以列出 Microsoft Teams 的角色:

Get-MgDirectoryRoleTemplate | 
	Where-Object DisplayName -like Teams*

接下来,我们有一个角色添加示例,我们将成员添加到角色,例如 Teams 通信支持工程师,它首先需要识别角色:

Get-MgDirectoryRole | 
	Where-Object DisplayName -eq 'Teams Communications Support Engineer'

然后我们检索角色的 Id 值:

$RoleID = (Get-MgDirectoryRole | 
	Where-Object DisplayName -eq 'Teams Communications Support Engineer').Id

然后我们将用户数据存储在变量中:

$UserId = (Get-MgUser -UserId [email protected]).Id

最后将用户添加到角色组:

New-MgDirectoryRoleMemberByRef -DirectoryRoleId $TeamsAdminRoleId -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/$($UserId)"}

八:节假日设置

假期在 Teams 中很重要,因为它们在一年中的某些日期或时间提供不同的功能。创建并分配假期后,Teams 可以为呼叫者提供备用消息甚至路由。 常见的用途是在公司停业时将它们放置到位。 让我们看一下在 Teams 中处理假期的一些示例代码:

列出当前假期:

Get-CsOnlineSchedule
Get-CsOnlineSchedule | 
	Where-Object {$_.Type -eq 'Fixed'}

创建新假期:

$Date = New-CsOnlineDateTimeRange -Start '1/12/2020 0:00' -End '1/12/2020 23:45'
New-CsOnlineSchedule -Name 'Employee Day' -DateTimeRanges $Date -FixedSchedule

更改现有假期:

$Schedule = Get-CsOnlineSchedule 93ce710a-f0b6-4c77-80eb-45c73228aa8b
$Schedule.Name = 'New Years Party'
Set-CsOnlineSchedule -Instance $Schedule

删除现有假期:

Remove-CsOnlineSchedule -Id 15f9c478-89a3-4052-9b1b-50eb87e769cf

九:日志搜索

审计 IT 运营是一项重要任务,并且可能是法规、审计和其他合规相关事务的必要任务。 PowerShell 擅长执行此类可能涉及大量数据且需要筛选的任务。 因此,审核 Microsoft Teams 事件是否属于 Teams PowerShell 的十大事件之一。为了审核 Teams 事件,我们需要连接到 Exchange Online PowerShell (v3),因为这是统一审核日志所在的位置。

Teams 事件 - 存储在统一审核日志中:

# Past 48 hours
$EndDate = Get-Date
$StartDate = $EndDate.AddDays(-2)

所有团队活动:

Search-UnifiedAuditLog -StartDate $StartDate -EndDate $EndDate -RecordType MicrosoftTeams

添加了团队频道:

Search-UnifiedAuditLog -StartDate $StartDate -EndDate $EndDate -RecordType MicrosoftTeams -Operations ChannelAdded

敏感度标签更改:

Search-UnifiedAuditLog -StartDate $StartDate -EndDate $EndDate -RecordType MicrosoftTeams -Operations SensitivityLabelChanged

团队被删除:

Search-UnifiedAuditLog -StartDate $StartDate -EndDate $EndDate -RecordType MicrosoftTeams -Operations TeamDeleted

供参考 - 团队活动

十:团队清理

虽然创建和管理团队是重要任务,但组织也往往会创建过多的团队,并且在其他情况下,组织会努力定期清除多余的团队。 因此,Teams 清理是一项重要任务,可以使用 Remove-Team* cmdlet 集来完成。以下是这些 cmdlet 的一些示例用法:

删除现有的 Microsoft 团队:

Remove-Team -GroupID '933fe926-555a-4832-87d1-8f700736e003'

删除现有的 Microsoft 团队频道:

Remove-TeamChannel -GroupId cfdba387-1319-4f6b-a883-8700046f07e7 -DisplayName 'Internal Sales'

删除现有的 Microsoft 团队用户:

Remove-TeamUser -GroupID '933fe926-555a-4832-87d1-8f700736e003' -User <UPN> 

结论

正如我们从使用 PowerShell for Microsoft Teams 的十大方法中看到的那样,我们可以自动化或简化很多任务。从创建团队、更改团队设置到日志记录等,PowerShell 为管理员提供了一种编程方式来管理其环境。 经过时间和实践,上述 cmdlet 和杂务可以自动化,这将允许管理员将任务传递给其他团队成员,或者可能执行一些已经等待了一段时间的其他项目。 关键的一点是,微软在 PowerShell 上投入了大量的时间和精力,而这前十名只是触及了众所周知的表面,还有很多东西需要学习。

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

取消回复欢迎 发表评论:

关灯