Office 365 Grupları PowerShell ile Yönetimi 5/8
İçindekiler:
- 1 # Office 365 Unified Group Cmdlet
- 2 # New-UnifiedGroup
- 3 # Get-UnifiedGroup
- 4 # Set-UnifiedGroup
- 5 # Add-UnifiedGroupLinks
- 6 # Get-UnifiedGroupLinks
- 7 # Remove-UnifiedGroupLinks
- 8 # Remove-UnifiedGroup
- 9 # Office 365 Grup kullanılabilecek örnek scriptler
- 9.1 Office 365 Gruplarına toplu şekilde kullanıcı PowerShell ile nasıl eklenir?
- 9.2 Office 365 grubunda bulunan bütün kullanıcıları Excel’e nasıl çekebilirim?
- 9.3 Bütün gruplara üye olan bütün kullanıcıları nasıl çekerim?
- 9.4 Kullanıcıların grup oluşturması nasıl engellenir?
- 9.5 End of story! Office 365 Grupları PowerShell ile Yönetimi
Merhaba arkadaşlar, Office 365 Grup Nedir ve Office 365 Grup Türleri adlı makaleleri yapmıştık, seriiye Office 365 grupları PowerShell yönetimi adlı makalem ile devam ediyorum. Unified Group PowerShell yönetiminde, arayüzde gördüklerinizden daha fazlasını görebilirsiniz. Burada en önemli özelliğimiz ise, Primary SMTP adresini değiştirmek olacak. Bunları makale içinde detaylı olarak paylaşmaya çalışacağım. En sevdiğim konu başlıklarımız adlı kısıma malesef ki gelemiyorum çünkü saçma olacak 🙂 Böyle bodoslama gireceğim artık şu komut şunu yapar diye. Hangisine ihtiyacınız varsa onu kullanabilir veya kendinize göre özelleştirebilirsiniz.
PowerShell ile işlem yapmak için PowerShell bağlantısı yapmanız gerekmektedir. Bu bağlantıyı yapabilmek içinse PowerShell araçlarını indirmeniz gerekmektedir. Daha önce kullanmadıysanız, yukarıdaki iki makeleyi okumanız önemli!
# Office 365 Unified Group Cmdlet
Şimdi kullanacağımız komutları tanıyalım;
New-UnifiedGroup | Yeni bir Office 365 Grup oluşturur ve birkaç detayı girmenize yarar. |
Get-UnifiedGroup | Var olan Office 365 Unified Group bilgilerini çeker ve detaylarına ulaşır. |
Set-UnifiedGroup | Önceden oluşturulmuş Office 365 gruplarını güncellemeye yarar. |
Add-UnifiedGroupLinks | Office 365 gruplarına kullanıcı ve sahip ekler. Yetkilendirme için kullanılır. |
Get-UnifiedGroupLinks | Office 365 Grubunda bulunan kullanıcı ve sahiplerin bilgisini görüntüler. |
Remove-UnifiedGroupLinks | Office 365 gruplarında bulunan kullanıcıları çıkarmaya veya yetkilerini almaya yarar. |
Remove-UnifiedGroup | Oluşturulmuş bir Office 365 Unified Group’u silmek için kullanılır. |
Yukarıdaki komutları kullanarak birkaç şekil yapacağız.
İlk olarak Office 365 bağlantısı yapmanız gerekmektedir bunun için;
Set-ExecutionPolicy UnRestricted Import-Module MsOnline $credential = Get-Credential Connect-MsolService -Credential $credential $exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri “https://outlook.office365.com/powershell-liveid/” -Credential $credential -Authentication “Basic” -AllowRedirection Import-PSSession $exchangeSession
Yukarıdaki komutu kullanarak, Office 365’e bağlantı sağlayalım. Komutu PowerShell’de çalıştırdıktan sonra, kullanıcı adı ve şifresi alanına Office 365’te bulunan yönetici hesap bilgilerini girmeniz gerekmektedir.
# New-UnifiedGroup
Bu komutla birlikte Office 365 gruplarını bu komutla birlikte oluşturabiliriz. Birkaç da parametre kullanma şansımız var, detaylarını sayfasından görebilirsiniz. Sadece tırnak içinde olan alanları düzenlemeniz yeterlidir.
New-UnifiedGroup -DisplayName "PS Group" -Alias "psgroup"
# Get-UnifiedGroup
Bu komutla grubumuza ait olan bütün detayları görebiliriz. Tırnak içinde olan alana detaylarını görmek istediğiniz grubun adını yazmanız yeterli.
Get-UnifiedGroup -Identity "PS Group" |fl *
Sadece bir özelliğini merak ettiğimiz bir durum var ise son yıldızdan sonra özelliğin adını yazmanız yeterli olacaktır. Örneğin bu grubun mail adresini bulmak istersek aşağıdaki komutu kullanabiliriz.
Get-UnifiedGroup -Identity "PS Group" |fl *PrimarySmtpAddress*

Diğer detayları da bu şekilde sondaki iki yıldız arasına yazarak bulabilirsiniz. Bulabileceğiniz bütün alanlar makalesinde mevcut.
# Set-UnifiedGroup
Bu komutun da oluşturulan grupları güncellediğini belirtmiştik zaten. Gruplar içinde özellikleri değiştirmek için kullanabiliriz. Örneğin yukarıdaki yaptığımızı genişletelim. Psgroup adresinin mail adresi office365studio.com olarak oluşmuş. Bunu ben, psgroup@cang.us olarak değiştirmek istiyorum. Bunun için aşağıdaki komutu kullanabilirim.
Get-UnifiedGroup -Identity "Ps Group" | Set-UnifiedGroup -PrimarySmtpAddress psgroup@cang.us
Komutu kullandıktan sonra grubun SMTP Adresine tekrar baktım ve psgroup@cang.us olduğunu gördüm. Office 365 Grup Yönetimi adlı makalemde bu sorunu yaşamıştık hatırlarsanız. Bu sorunu bu şekilde geçebiliyoruz.

Set-UnifiedGroup ile de birçok parametre kullanabilirsiniz. Detayı için kendi makalesine bakabilirsiniz. Çok fazla olduğu için bu makaleye sığdıramayacağım.
# Add-UnifiedGroupLinks
Bu komutla birlikte oluşturduğumuz gruba üye veya sahip ekleyip çıkarabiliriz. Örneğin aşağıdaki komutla Burak Varol’u gruba üye olarak ekleyelim.
Add-UnifiedGroupLinks -Identity "Ps Group" -LinkType Members -Links "burak.varol"
Yukarıdaki komutta sadece Members yerine Owner yazmanız durumunda da kullanıcıyı sahip olarak ekleyecektir.
# Get-UnifiedGroupLinks
Bu komut ile de gruplara üye olan kullanıcıları çekebilirsiniz. Aynı grup üzerinde örneklerimize devam edelim;
Gruptaki kullanıcıları görüntülemek için aşağıdaki komutu uygulayabilirsiniz.
Get-UnifiedGroupLinks -Identity "Ps group" -LinkType Members
Bu komutla ise grubun sahiplerini çekebilirsiniz.
Get-UnifiedGroupLinks -Identity "Ps group" -LinkType Owners

# Remove-UnifiedGroupLinks
Bu komutla da gruplardaki kullanıcı ve sahipleri kaldırabilirsiniz.Gruptan bir kullanıcı kaldırmak için aşağıdaki komutu uygulayabilirsiniz; (Burak Varol kullanıcısını ve Can Güneş kullanıcısını gruptan çıkarıyor)
Remove-UnifiedGroupLinks -Identity "PS Group" -LinkType Members -Links burak.varol@cang.us,cang@cang.us
Gruptan bir sahibi powershell ile kaldırmak için aşağıdaki komutu uygulayabilirsiniz. Can Güneş kullanıcısını PS Group sahipliğinden alıyor.
Remove-UnifiedGroupLinks -Identity "PS Group" -LinkType Owners -Links cang@cang.us
Diğer parametreleri de makalesinden bulabilirsiniz.
# Remove-UnifiedGroup
Bu komut ise grubu silmeye yarıyor. Oluşturduğumuz grubu silmek için aşağıdaki komutu kullanacağım.
Remove-UnifiedGroup -Identity "PS Group"
İşinize yarayabileceğini düşündüğüm son bilgi de, gruba toplu şekilde üye ekleme ve bütün üyeleri CSV dosyasına çekmek olacak. Bunları da size paylaşayım.
# Office 365 Grup kullanılabilecek örnek scriptler
Office 365 Gruplarına toplu şekilde kullanıcı PowerShell ile nasıl eklenir?
- Öncelikle bir csv oluşturup CSV içine üye olacak kullanıcıların e-postalarını veya görüntüleme adlarını alt alta girin.
- Ardından CSV dosyasını C:\ altına atın ve adını members.csv olarak ayarlayın.
- Ardından aşağıdaki komutta TestO365Group’u grubunuzun adı ile değiştirin.
- Komutu çalıştırdıktan sonra bitmesini bekleyin.
Import-CSV "C:\members.csv" | ForEach-Object { Add-UnifiedGroupLinks –Identity "TestO365Group" –LinkType Members –Links $_.member }
Office 365 grubunda bulunan bütün kullanıcıları Excel’e nasıl çekebilirim?
Aşağıda bulunan komutla birlikte PS Group adlı gruba üye olan bütün kullanıcıların bir Excel’e isimlerini ve e-posta adreslerini yazdırabiliyorum.
Get-UnifiedGroupLinks -Identity "Ps Group" -LinkType Member | Select-Object DisplayName,PrimarySmtpAddress | Export-Csv C:\Temp\PsGroup.csv -NoTypeInformation -Encoding UTF8
Bütün gruplara üye olan bütün kullanıcıları nasıl çekerim?
Hadi olayı biraz ilerletelim. Bütün gruplara üye olan kullanıcıları çekelim. Yapacağımız işlem çok basit, sadece komutu çalıştırın ve gruplara üye olan bütün kullanıcıları C:\ lokasyonunda ALL-UnifiedGroupMembers adlı csv dosyasında bulun.
DipNot! Ya gardaşım, ben sahiplerini istiyordum ama! Diyorsanız eğer CTRL+F ile “-LinkType Member” yerini bulun ve Member yazan yeri Owner olarak değiştirin. Bunun dışında bir şey yapmanıza gerek yok.
#Accept input parameters Param( [Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$true)] [string] $Office365Username, [Parameter(Position=1, Mandatory=$false, ValueFromPipeline=$true)] [string] $Office365Password ) #Constant Variables $OutputFile = "C:\All-UnifiedGroupMembers.csv" #The CSV Output file that is created, change for your purposes $arrDLMembers = @{} #Remove all existing Powershell sessions Get-PSSession | Remove-PSSession #Did they provide creds? If not, ask them for it. if (([string]::IsNullOrEmpty($Office365Username) -eq $false) -and ([string]::IsNullOrEmpty($Office365Password) -eq $false)) { $SecureOffice365Password = ConvertTo-SecureString -AsPlainText $Office365Password -Force #Build credentials object $Office365Credentials = New-Object System.Management.Automation.PSCredential $Office365Username, $SecureOffice365Password } else { #Build credentials object $Office365Credentials = Get-Credential } #Create remote Powershell session $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Office365credentials -Authentication Basic –AllowRedirection #Import the session Import-PSSession $Session -AllowClobber | Out-Null #Prepare Output file with headers Out-File -FilePath $OutputFile -InputObject "Distribution Group DisplayName,Distribution Group Email,Member DisplayName, Member Email, Member Type" -Encoding UTF8 #Get all Distribution Groups from Office 365 $objDistributionGroups = Get-UnifiedGroup -ResultSize Unlimited #Iterate through all groups, one at a time Foreach ($objDistributionGroup in $objDistributionGroups) { write-host "Processing $($objDistributionGroup.DisplayName)..." #Get members of this group $objDGMembers = Get-UnifiedGroupLinks -Identity $($objDistributionGroup.PrimarySmtpAddress) -LinkType Member write-host "Found $($objDGMembers.Count) members..." #Iterate through each member Foreach ($objMember in $objDGMembers) { Out-File -FilePath $OutputFile -InputObject "$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" -Encoding UTF8 -append write-host "`t$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" } } #Clean up session Get-PSSession | Remove-PSSession
Kullanıcıların grup oluşturması nasıl engellenir?
Office 365 Grup oluşturma makalesinde bahsetmiştik, normal kullanıcılar da oluşturabilir diye. Hatta Office 365 Grup Outlook Özellikleri adlı makalemizde nasıl yapacaklarını da göstermiştim. Bunu kapatmak için de aşağıdaki komutları kullanabilirsiniz.
$GlobalAdmins = Get-MsolRole -RoleName "Company Administrator" $GlobalAdminsObjectID = $GlobalAdmins.ObjectId.ToString() $template = Get-MsolAllSettingTemplate | where-object {$_.DisplayName -eq "Group.Unified"} $setting = $template.CreateSettingsObject() $setting["EnableGroupCreation"] = "false" $setting["GroupCreationAllowedGroupId"] = $GlobalAdminsObjectID New-MsolSettings -SettingsObject $setting Get-OwaMailboxPolicy | ? { $_.IsDefault -eq $true } | Set-OwaMailboxPolicy -GroupCreationEnabled $false
End of story! Office 365 Grupları PowerShell ile Yönetimi
Yahu kardeşim! Herşeyi paylaşmışsın ama şunun komutunu paylaşmamışsın dediğiniz bir yer varsa yazın bi yorum. Hallederiz bi şekilde. 🙂 Dert edilecek bir şey yok. Belki PowerShell MVP’si değiliz ama bizim de üç beş şeklimiz var. 🙂
Benim aklıma gelen yararlı komutlar bunlardı. Ki zaten makaleyi yazmamdaki asıl amaç bütün grupları çektiğimiz script ve toplu şekilde kullanıcıları üye yapmaktı. Yaptık mı? Yaptık! Fakat, tekrar hatırlatayım! Office 365 grupları PowerShell ile yönetimi ile alakalı aklınıza takılan bir soru varsa buradayım.
Ek olarak SharePoint Kullanımı ve Planner Kullanımı makalelerine de göz atmanızı tavsiye ederim.
Umarım yararlı olmuştur sizler için de. Abonelik almayı unutmayın, yararlı şeyleri paylaşmaya devam edeceğim.
Keyifli çalışmalar dilerim.
Yorumlar kapatıldı.