Teams PowerShell'i kullanmanın en iyi 10 yolu


style="letter-spacing: 0px; text-transform: unset; arka plan rengi: şeffaf;">Burada tüm Microsoft Teams yöneticileri için çok yararlı bazı cmdlet'ler (ve ilgili açıklamalar) bulunmaktadır. Damian'ın ilk 10'undan kaç tanesini zaten biliyordunuz?

giriiş

Microsoft Teams'i yönetmek için PowerShell'i kullanmak, Microsoft 365'teki yöneticiler için bir nimet olabilir ve tıpkı Exchange PowerShell gibi, Teams PowerShell'de de yöneticilerin kullanabileceği çok sayıda cmldet vardır. Bu makalenin amacı, elimizdekileri ele almak ve Microsoft Teams PowerShell'i kullanmanın en iyi 10 yolundan bazılarına göz atmaktır. Hemen içeri dalalım.

BİR: Kullanıcıların lisanslanması

Yaygın bir katılım görevi, kullanıcıya erişmesi gereken özellikler için bir lisans vermektir. Bu bölümde, Microsoft Graph PowerShell'i kullanarak süreci kısaca ele alacağız ve bu işlem MSOnline PowerShell modülüyle hâlâ gerçekleştirilebilse de, Microsoft bu modülü önümüzdeki yıl kullanımdan kaldırıyor.

Buna ayrıntılı bir bakış için ScriptRunner blogundaki önceki blog gönderisine buradan ulaşabilirsiniz.

İKİ: Ekip oluşturma

Ekipler elbette Microsoft Teams deneyiminin temel bileşenidir ve bu nedenle bunları PowerShell ile nasıl oluşturacağınızı bilmek, özellikle benzer ayarlara sahip çok sayıda ekip oluşturuyorsanız yararlı bir beceri olabilir.

PowerShell ile ekip oluşturmak çok fazla seçenek gerektirmez, aslında yalnızca Görünen Ad kullanarak ekip oluşturabiliriz:

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

Yeni Takım cmdlet'inin açıklama sağlamak gibi başka seçenekleri de vardır:

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

Veya belki de Arama gibi bir Ekip için bir özelliği açmak:

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

Ekipler oluştururken, oluşturma sırasında bir özellik ayarlanmamışsa, ayarların tamamı olmasa da çoğunun Set-Team cmdlet'i ile sonradan değiştirilebileceğini unutmayın.

ÜÇ: Teams kanalları oluşturma

Ekiplerimizi oluşturduktan sonra, her Ekibin ihtiyaç duyduğu şeyleri alt bölümlere ayırmak veya düzenlemek için Ekip Kanalları ekleyebiliriz. Örneğin artık bir Satış Ekibimiz var ve bu Ekibin altında şirketin gerçekleştirdiği her satış kampanyası için kanallar oluşturmamız gerekiyor. Bir danışmanlık firmasının, iletişimleri ve içerik paylaşımını ayırmak amacıyla müşteri başına bir Ekibi ve ardından o müşteri için sahip olduğu her proje için bir Ekip Kanalı olabilir.

Örnek Cmdlet'ler

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

Söz konusu Ekipte Ekipler Kanalı oluşturmak için Grup Kimliğine ihtiyacımız olduğunu unutmayın.

DÖRT: Oluşturma sonrasında Teams ayarlarını değiştirin

Daha önce de belirtildiği gibi, daha önce oluşturduğumuz Ekipler de yeni ihtiyaçları karşılayacak veya standart bir yapılandırma oluşturacak şekilde değiştirilebilir. Bu değişiklikler Set-Team cmdlet'i ile yapılabilir. Örneğin, Ekip üyelerinin bir Chanel'de kendilerine sunduğu Çıkartmalar ve Memler veya bahsetmeler gibi seçenekleri değiştirmek istiyorsak:

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

Ya da belki Kanal güncellemelerine izin vermek istiyoruz:

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

Grup Aramayı kapatın:

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

Görünen Ad ve Açıklama gibi bazı grup bilgilerini değiştirin:

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

Veya bir grubu arşivleyin:

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

BEŞ: Politikaları belirlemek

PowerShell, Ekipler ve Kanallara ek olarak tüm Ekipleri, Kullanıcıları ve belki de toplantı ayarlarını etkileyen genel ilkeleri yönetebilir. Bu ayarları değiştirerek Teams'in bir ortamdaki kullanımını kontrol edebilir ve belki de Teams'i çeşitli kurumsal politikalarla uyumlu hale getirebiliriz.

Örneğin, toplantılarında bu özellikten yararlanabilmeleri için RnD departmanı gibi Transkripsiyonları açabiliriz, ancak diğer politikalarda bu özelliği devre dışı bırakabiliriz:

New-CsTeamsMeetingPolicy -Identity RnDPolicy -AllowTranscription $True

Ardından, kullanıcı girişi veya ara odası oluşturma ayarlarına sahibiz:

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

Bir politika listelendiğinde ve kullanılabilir olduğunda, politikayı kullanıcılara uygulayabiliriz:

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

Veya politika ayarları geçersiz hale gelirse veya artık gerekli değilse bunları kaldırabiliriz:

Remove-CsTeamsMeetingPolicy 'RnDPolicy'

Tıpkı Teams gibi, bir politikayı oluşturulduktan sonra değiştirebilir ve bazı yeni standartları karşılayabilecek ayarları değiştirebiliriz:

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

ALTI: Ekiplere üye ekleme

Teams'in kullanıcıları olmasaydı ne olurdu? Aslında pek fazla değil. Yani PowerShell ile kullanıcıların, istemcilerinde ihtiyaç duydukları Teams'e erişebilmelerini sağlamak için Microsoft Teams'e de kullanıcı ekleyebiliriz. Aşağıdaki örnek kodla, bir kaynak CSV dosyası kullanabilir ve ardından departmanlarına göre Teams'e üye ekleyebiliriz:

# 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}
}

YEDİ: Takımlara rol ataması

Microsoft Teams'i desteklemesi gereken kişilere rol atamak da bir diğer önemli görevdir çünkü en az ayrıcalığın kullanıldığından ve bu kullanıcıların görevlerini gerçekleştirebildiğinden emin olabiliriz. Bu rol atamalarının MSOnline PowerShell modülüyle yapılabileceğini ancak bu modülün kullanımdan kaldırıldığını ve üretim çalışmaları için kullanılmaması gerektiğini unutmamak önemlidir. Aşağıdaki örneklerde öncelikle Microsoft Graph PowerShell'e uygun izinlerle bağlandığınızdan emin olun.

Öncelikle Microsoft Teams için rolleri sıralayabiliriz:

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

Daha sonra, Teams İletişim Destek Mühendisi gibi bir role üye eklediğimiz bir rol ekleme örneğimiz var; bu örnekte öncelikle rolün tanımlanması gerekir:

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

Daha sonra Rolün Id değerini alıyoruz:

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

Daha sonra Kullanıcı verilerini bir değişkende saklarız:

$UserId = (Get-MgUser -UserId damian@practicalPowerShell.com).Id

Son olarak kullanıcıyı Rol grubuna ekleme:

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

SEKİZ: Tatil ayarları

Tatiller Teams'de önemlidir çünkü yılın belirli tarihlerinde veya saatlerinde farklı işlevler sağlarlar. Bir Tatil oluşturulduğunda ve atandığında Teams, arayanlar için alternatif mesajlar ve hatta yönlendirme sağlayabilir. Yaygın bir kullanım alanı, şirket iş nedeniyle kapalı olduğunda bunları yerine koymaktır. Teams'de Tatilleri yönetmek için bazı örnek kodları inceleyelim:

Mevcut Tatilleri listeleyin:

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

Yeni Tatil oluştur:

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

Mevcut bir Tatili değiştirin:

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

Mevcut Tatili kaldır:

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

DOKUZ: Günlük aramaları

BT operasyonlarını denetlemek önemli bir görevdir ve düzenlemeler, denetimler ve uyumlulukla ilgili diğer konular için gerekli bir görev olabilir. PowerShell, potansiyel olarak büyük veri kümelerinin söz konusu olduğu ve filtrelemenin gerekli olduğu bu tür görevlerde mükemmeldir. Böylece Teams PowerShell için ilk ondan biriyse Microsoft Teams etkinliklerini denetlemek. Teams olaylarını denetlemek için, Birleşik Denetim günlüğünün bulunduğu yer burası olduğundan Exchange Online PowerShell'e (v3) bağlanmamız gerekir.

Birleştirilmiş Denetim Günlüğünde depolanan Ekip Etkinlikleri -:

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

Tüm Takım etkinlikleri:

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

Ekip kanalları eklendi:

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

Hassasiyet Etiketi değişiklikleri:

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

Takımlar silindi:

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

Referans İçin - Ekip etkinlikleri

ON: Ekip temizliği

Ekip oluşturmak ve yönetmek önemli görevler olsa da, kuruluşlar aynı zamanda çok fazla Ekip oluşturma eğilimindedir ve diğer durumlarda kuruluşlar, fazla Ekipleri periyodik olarak temizlemek için çok çalışırlar. Bu nedenle Teams temizliği önemli bir görevdir ve Remove-Team* cmdlet seti ile tamamlanabilir. Aşağıda bu cmdlet'lerin bazı örnek kullanımları verilmiştir:

Mevcut Microsoft Ekibini Kaldırma:

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

Mevcut Microsoft Ekip Kanalını Kaldırma:

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

Mevcut Microsoft Ekip Kullanıcısını Kaldırma:

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

Çözüm

Microsoft Teams için PowerShell'i kullanmanın En İyi On yolundan görebileceğimiz gibi, otomatikleştirebileceğimiz veya kolaylaştırabileceğimiz pek çok görev var. PowerShell, Teams oluşturma, Teams ayarlarını değiştirme, günlüğe kaydetme ve daha fazlasına kadar yöneticilere ortamlarını yönetmeleri için programlı bir yol sağlar. Zaman ve pratikle, yukarıdaki cmdlet'ler ve görevler otomatikleştirilebilir ve bu da yöneticilerin görevleri diğer ekip arkadaşlarına devretmesine veya belki de bir süredir bekleyen diğer bazı projeleri yapmasına olanak tanır. Buradan çıkarılacak en önemli sonuç, Microsoft'un PowerShell'e çok fazla zaman ve enerji ayırdığı ve bu ilk 10'un yalnızca öğrenilecek çok daha fazla şeyle meşhur yüzeyi çizdiğidir.

İlgili makaleler