Управление Microsoft Teams с помощью PowerShell

Управление Microsoft Teams с помощью PowerShell

PowerShell модуль Microsoft Teams разработан для управления Teams из командной строки. Командлеты модуля можно использовать для более быстрого выполнения типовых задач администрирования и в сценариях автоматизации. В этой статье мы покажем, как установить PowerShell модуль Teams, и рассмотрим типовые команды, которые могут понадобится администратору Microsoft 365 для управления Teams.

Установка PowerShell модуля Microsoft Teams

Для установки модуля Microsoft Teams версия PowerShell на вашем компьютере должна быть не ниже 5.1. Вывести текущую версию можно с помощью команды:

$PSVersionTable.PSVersion

Обновите версию PowerShell, если нужно.

Вы можете установить модуль MS Teams из PowerShell Gallery с помощью команды:

Install-Module -Name MicrosoftTeams

установка powershell модуля MicrosoftTeams

Чтобы проверить, что модуль Teams установлен на компьютере и вывести его версию, выполните:

Get-Module MicrosoftTeams –ListAvailable

Вы можете установить определенную версию модуля из PSGallery. Выведите список доступных версий модуля:

Find-Module MicrosoftTeams -AllVersions

версии моуля MicrosoftTeams

Чтобы установить определенную версию, используйте команду:

Install-Module -Name MicrosoftTeams -RequiredVersion 3.0.0

Для обновления версии модуля Teams выполните:

Update-Module -Name MicrosoftTeams

Полный список командлетов в модуле можно вывести так:

Get-Command –Module MicrosoftTeams

В версии модуля 3.1.0 доступно 579 командлетов и функций Teams.

список командлетов в powershell модуле для управления Microsoft Teams

Использование PowerShell модуля для управления Microsoft Teams

Для подключения к тенанту Teams в Microsoft 365 выполните команду (если для акканту включена:

Connect-MicrosoftTeams

Введите имя и пароль пользователя для подключения. Если для аккаунта пользователя Azure включена MFA, нужно выполнить подтвердить аутентификацию.

Для использования модуля Teams вашей учетной записи должна быть назначена одна из следующих ролей Azure:
  • Global Admin
  • Teams Service Admin
  • Teams Communications Admin
  • Teams Communications Support Engineer
  • Teams Communications Support Specialist

Вывести все команды Teams в вашем тенанте:
Get-Teams

Чтобы создать новую частную (private) команду в Teams выполните:

New-Team –DisplayName SysOps

При создании новой команда, автоматически создается группа Microsoft 365 с рабочими областями в Yammer, PowerBI, SharePoint и группой рассылки Exchange Online.

Вывести все настройки группы Teams:

get-team -DisplayName sysops|fl

GroupId : 52259fec-0a72-xxxx-96e2-8583xxxxxx
InternalId : [email protected]
DisplayName : SysOps
Description : SysOps Wiki Team
Visibility : Public
MailNickName : msteams_cxx92d
Classification :
Archived : False
AllowGiphy : True
GiphyContentRating : moderate
AllowStickersAndMemes : True
AllowCustomMemes : True
AllowGuestCreateUpdateChannels : False
 AllowGuestDeleteChannels : False
AllowCreateUpdateChannels : True
AllowCreatePrivateChannels : True
AllowDeleteChannels : True
AllowAddRemoveApps : True
AllowCreateUpdateRemoveTabs : True
AllowCreateUpdateRemoveConnectors : True
AllowUserEditMessages : True
AllowUserDeleteMessages : True
AllowOwnerDeleteMessages : True
AllowTeamMentions : True
AllowChannelMentions : True
ShowInTeamsSearchAndSuggestions : True

Можно изменить описание группы и видимость:

get-team -DisplayName sysops| Set-Team -Description "SysOps Wiki Team" -Visibility "Public"

get-team создать новую группу в Teams

Изменить картинку группы:

get-team -DisplayName sysops | Set-TeamPicture -ImagePath c:ImageNewTeamPicture.png

Добавить пользователя в группу:

get-team -DisplayName sysops| Add-TeamUser -User [email protected]

Добавить владельца группы:

get-team -DisplayName sysops| Add-TeamUser -User [email protected] -Role Owner

Добавить пользователя во все команды:

$AllTeams = Get-Team
$UserToAdd = "[email protected]"
ForEach ($Team in $AllTeams)
{
Write-Host "Adding to $($Team.DisplayName)”
Add-TeamUser -GroupId $Team.GroupID -User $UserToAdd -Role Member
}

Вывести список пользователей и владельцев группы Teams:

get-team -DisplayName sysops|Get-TeamUse

вывести список пользователей в группе Teams

Вывести членов всех групп Teams и владельцев:

$AllTeams = (Get-Team).GroupID
TeamList = @()
Foreach ($CurTeam in $AllTeams)
{ $TeamGUID = $CurTeam.ToString()
$TeamName = (Get-Team | ?{$_.GroupID -eq $CurTeam}).DisplayName
$TeamOwner = (Get-TeamUser -GroupId $CurTeam | ?{$_.Role -eq 'Owner'}).Name
$TeamMember = (Get-TeamUser -GroupId $CurTeam | ?{$_.Role -eq 'Member'}).Name
$TeamList = $TeamList + [PSCustomObject]@{TeamName = $TeamName; TeamObjectID = $TeamGUID; TeamOwners = $TeamOwner -join ', '; TeamMembers = $TeamMember -join ', '}
}
$TeamList |fl

вывести всех группы Teams с пользователями и владельцами

Удалить пользователя из владельцев группы Teams и из команды:

get-team -DisplayName sysops| Remove-TeamUser -User [email protected] -Role Owner
get-team -DisplayName sysops| Remove-TeamUser -User [email protected]

Чтобы создать новый закрытый канал в существующей группе Teams, выполните:

get-team -DisplayName sysops| New-TeamChannel -DisplayName “Windows_Wiki” -MembershipType Private

ли добавить канал в группу microsoft 365 teams

Добавим пользователя в канал и назначим его владельцем:

get-team -DisplayName sysops| Add-TeamChannelUser -DisplayName “Windows_Wiki” -User [email protected] -Role Owner

Для удаления из канала:

get-team -DisplayName sysops| Remove-TeamChannelUser -DisplayName “Windows_Wiki” -User [email protected] -Role Owner

Если команда Teams не активна, но вы хотите сделать ее контент доступным пользователям на чтение, можно ее заархивировать:

get-team -DisplayName sysops|Set-TeamArchivedState -Archived $true

Удалить канал:

get-team -DisplayName sysops | Remove-TeamChannel -DisplayName “Windows_Wiki”

Полностью удалить команду Teams:

get-team -DisplayName sysops | Remove-Team

Создать новую политику Teams:

New-CsTeamsMessagingPolicy –Identity CsTeamsExternalUsersPolicy -AllowGiphy $false -AllowMemes $false –AllowUserChat $false

политики в teams

Identity : Tag:CsTeamsExternalUsersPolicy
Description :
AllowUrlPreviews : True
AllowOwnerDeleteMessage : False
AllowUserEditMessage : True
AllowUserDeleteMessage : True
AllowUserDeleteChat : True
AllowUserChat : False
AllowRemoveUser : True
AllowGiphy : False
GiphyRatingType : Moderate
AllowGiphyDisplay : True
AllowPasteInternetImage : True
AllowMemes : False
AllowImmersiveReader : True
AllowStickers : True
AllowUserTranslation : True
ReadReceiptsEnabledType : UserPreference
AllowPriorityMessages : True
AllowSmartReply : True
AllowSmartCompose : True
ChannelsInChatListEnabledType : DisabledUserOverride
AudioMessageEnabledType : ChatsAndChannels
ChatPermissionRole : Restricted
AllowFullChatPermissionUserToDeleteAnyMessage : False
AllowFluidCollaborate : False
AllowVideoMessages : True

Назначить политику Teams на пользователя:

Grant-CsTeamsMessagingPolicy -Identity [email protected] -PolicyName CsTeamsExternalUsersPolicy

Или на всех пользователей с определенным атрибутом в AzureAD:

Get-CsOnlineUser -Filter {Department -like '*External*'} | Grant-CsTeamsMessagingPolicy -PolicyName CsTeamsExternalUsersPolicy

После завершения PowerShell сеанса не забудьте отключиться от Microsoft Teams:

Disconnect-MicrosoftTeams

PowerShell
Управление Microsoft Teams с помощью PowerShell