Cloud Computing

Office 365 PowerShell ile Bağlantı Şekilleri ve Yönetim İşlemleri

Merhaba, bu yazımda sizler ile Office 365 üzerinde yönetim için kullanabileceğimiz PowerShell desteğinden bahsedeceğim. Office 365 PowerShell ile bizlere ciddi avantajlar sağlamakta. Kısaca örneklemek gerekirse, PowerShell yardımı ile yeni kullanıcılar oluşturabilir, .csv ile birden çok user’ı import edebilir, Exchange Online platformunu PowerShell ile yönetebiliriz.  Hatta bazı durumlarda Office 365’ in yönetimini PowerShell ile yapmamız gerekebilir. Tabi ki DirSync desteği ile Active Directory senkronize özelliğini kullanıyorsanız özellikle user bazında yönetilebilirlik Active Directory üzerinden yapılmakta.

 Exchange Online tarafından bir örnek vermek gerekirse, kullanıcı bazında Access “Full Access veya Send As”  vermemiz için PowerShell kullanabiliriz. Tabi ki Office 365 sistemi gün geçtikçe güncelleniyor ve PowerShell üzerinden yapmak zorunda olduğumuz işlemleri GUI bazında da yapabilir alt yapı sağlanıyor.

Office 365 üzerinde cmdlets’ ler ile yönetim işlemini Windows PowerShell veya Microsoft Azure Active Directory Module for Windows PowerShell araçları ile yapılabilir.

Azure Active Directory Module for Windows PowerShell ile bağlantı için aşağıda ki kurulum dosyalarını ilgili Server veya Client bilgisayarına yüklemeniz gerekmektedir. Microsoft Online Services Oturum Açma Yardımcısı, Office 365 gibi Microsoft Online Services hizmetlerine son kullanıcı oturum açma özellikleri sağlar.

.NET Framework 3.51 ve Üstü

Windows Online Services Oturum Açma Yardımcısı

Azure Active Directory Module for Windows PowerShell

Microsoft Online Services Sign-in Assistant

Powershell üzerinden Office 365 platformuna bağlanmak istediğimizde, Öncelikli olarak PowerShell Execution Policy ayarını yapmamız gerekmektedir. Bunun sebebi bilgisayarınızda çalışmasına izin verilecek, Windows PowerShell komut (varsa) tespit etmenizi sağlar.

Windows PowerShell’in komutları çalıştırmak için dört adet güvenlik ilkesi vardır.

Unrestricted: Hiçbir yetkisel kısıtlama olmadan; Tüm Windows PowerShell komutlarını çalıştırılabilir.

AllSigned: Güvenilen bir yayımcı tarafından imzalanan Sadece komut çalıştırılabilir.

Restricted: Kısıtlı komut çalıştırılabilir. Windows PowerShell yalnızca etkileşimli modda kullanılabilir.

RemoteSigned: Çalıştırılmadan önce İndirilen komut güvenilen bir yayımcı tarafından imzalanmış olmalıdır.

Get-ExecutionPolicy komutu sayesinde, Windows Powershell üzerinde geçerli olan Restricten Policyi görebiliriz. Policy’i gördükten sonra tüm komutları kısıtlama olmadan çalıştırmak için “Set-ExecutionPolicy Unrestricted” komutunu çalıştırıyoruz.

clip_image002

Office 365 Hizmetine PowerShell İle bağlanma:

Yukarıda belirttiğim işlemler sonrası, Office 365 platformuna PowerShell ile bağlanalım.

Komutumuz: Import-Module MSOnline Office 365 PowerShell komutlarını import etmiş oluyoruz.

Diğer Komutumuz: Connect-MsolService bu komut ile Office 365 yönetici Username ve Password bilgilerini giriyoruz.

clip_image004

Office 365 Admin bilgilerini girdikten sonra, Office 365 Cloud hizmeti içerisinde yapabileceğimiz her şeyi PowerShell komutlarını ile gerçekleştirebiliriz.

Basit bir örnek göstermek gerekirse, Get-MsolUser komutunu ile Office 365 paneline tanımlı olan kullanıcı listesini görebiliriz.

clip_image006

Exchange Online Hizmetine PowerShell İle bağlanma:

Import-Module MSOnline Exchange Online PowerShell komutlarını import etmiş oluyoruz.

$O365Cred = Get-Credential komutunu ile Office 365 Admin Username ve Password bilgilerini giriyoruz.

clip_image008

$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic –AllowRedirection komutunu Windows PowerShell üzerinde çalıştırıyoruz. Bu komut sayesinde Windows Powershell’ i Cloud data merkezine bağlıyoruz.

clip_image010

Import-PSSession $O365Session komutu ile Cloud tabanlı servis komutlarının kullanımını sağlıyoruz.

clip_image012

İşlem sonrası yaklaşık 500 CMDlets import edilmiş olur.

Exchange Online üzerinde birkaç komut ile bağlantımızı bir nevi test etmiş olalım.

clip_image014

Office 365 Exchange Online üzerine PowerShell ile başarılı bir şekilde bağlandık ve PowerShell cmdletslerimizi kontrol amaçlı çalıştırdık.

 

 

Lync Online Hizmetine PowerShell İle bağlanma:

Lync Server Administration Tools aşağıda ki linkten indirip, kuruyoruz.

https://technet.microsoft.com/en-us/library/hh974317.aspx

http://www.microsoft.com/en-us/download/details.aspx?id=39366

clip_image016

Aşağıda ki PowerShell komutlarını sırasıyla giriyoruz.

1.$credential = Get-Credential

3. $session = New-CsOnlineSession -Credential $credential

4. Import-PSSession $session

5. Get-CsOnlineUser ufuk.tatlidil

clip_image018

 

 

SharePoint Online Hizmetine PowerShell İle bağlanma:

SharePoint Online Management Shell aşağıda ki linkten indirip, kuruyoruz.

http://www.microsoft.com/en-us/download/details.aspx?id=35588

clip_image020

Daha sonra SharePoint Management Shell’ i run as Administrator olarak çalıştırıyoruz.

Sharepoint Online’ PowerShell ile bağlanabilmek için; Connect-SPOService –Url https://o365cp-admin.sharepoint.com -credential [email protected] komutunu kullanıyoruz.

clip_image022

Get-Command –Module Microsoft.Online.Sharepoint.PowerShell komutu ile SharePoint Online üzerinde hangi komutları kullanabileceğimizi görebiliriz.

clip_image024

Get-SPOSite komutu sayesinde SharePoint Online üzerinde bulunan sitelerimizin listesini görebiliriz.

clip_image026

clip_image028

Get-SPOUser -Site https://o365cp.sharepoint.com komutu ile SharePoint Online üzerinde ki aktif userları görebiliriz.

clip_image030

SharePoint Online Management Shell

https://technet.microsoft.com/en-us/library/fp161388.aspx#ae4901b4-505a-42a9-b8d4-fca778abc12e

Microsoft’ un Office 365 komut satırı aracı olarak Microsoft Online Services for Windows Powershell  mevcut. Ancak, ben sizler ile Windows Vista, Windows 7, Windows 8/8.1, Windows Server 2008/2012 ve 2012r2 ile birlikte kullanımımıza sunulmuş olan komut satır aracı Windows Powershell ile Office 365 hesabını nasıl yönetebileceğimizi paylaşacağım.

Windows PowerShell’ i Run As Administrator olarak çalıştırdıktan sonra, Get-ExecutionPolicy komutu ile PowerShell CMDletsleri çalışıtırp, çalıştıramadığımızı kontrol edelim.

clip_image032

Güvenlik ilkesi olarak, Unrestricted olduğunu görüyoruz.

Güvenlik ilkelerini ilk yazımızda paylaşmıştım. Tekrar hatırlayalım.

Windows PowerShell’in komutları çalıştırmak için dört adet güvenlik ilkesi vardır.

·         Unrestricted: Hiçbir yetkisel kısıtlama olmadan; Tüm Windows PowerShell komutlarını çalıştırılabilir.

·         AllSigned: Güvenilen bir yayımcı tarafından imzalanan Sadece komut çalıştırılabilir.

·         Restricted: Kısıtlı komut çalıştırılabilir. Windows PowerShell yalnızca etkileşimli modda kullanılabilir.

·         RemoteSigned: Çalıştırılmadan önce İndirilen komut güvenilen bir yayımcı tarafından imzalanmış olmalıdır.

Eğer Get-ExecutionPolicy komutunu çalıştırdığınızda Restricted karşılığını alırsanız ki bu kısıtlı olduğu anlamına gelir, aşağıda ki komutlar ile kendinize yetki verebilirsiniz.

·         Set-ExecutionPolicy Unrestricted

·         Set-ExecutionPolicy AllSigned

·         Set-ExecutionPolicy RemoteSigned

$LiveCred = Get-Credential, $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection, Import-PSSession $Session ve Connect-MsolService –Credential $cred komutları ile Office 365 hesabımıza bağlanıyoruz. Bağlantı detayları için ilk makalemize göz atabilirsiniz.

Not: Restricted yetkilerini vermezseniz, Import-PSSession $Session komutu sonrası hata alırsınız.

clip_image034

Klasik komutumuz Get-MsolUser ile Office 365 userlarımızı görüntüleyebiliriz.

https://msdn.microsoft.com/en-us/library/azure/dn194096.aspx

clip_image036

New-MsolUser komutu ile bir user oluşturalım.

New-MsolUser -UserPrincipalName [email protected] -DisplayName “Sezgin KARABACAK” -FirstName “Sezgin” -LastName “KARABACAK”

Kullanıcı başarılı bir şekilde oluştu.

clip_image038

Bir kullanıcıyı silmek istersek ne yapmalıyız?

Komut: Remove-MsolUser –UserPrincipalName [email protected]

clip_image040

clip_image042

Daha geniş içerikli bir user oluşturmak isterseniz aşağıda ki örnek işinizi görecektir.

New-MsolUser -UserPrincipalName [email protected] -DisplayName ” Dominique Trujillo” -FirstName “Dominique ” -LastName “Trujillo” -UsageLocation “US” -LicenseAssignment “Contoso:BPOS_Standard”

Silinen bir Office 365 user’ ı nasıl restore edebiliriz?

clip_image044

Komutumuz:

$DelUser = Get-MsolUser -UserPrincipalName [email protected] -ReturnDeletedUsers

clip_image046

Restore-MsolUser -ObjectId $DelUser.ObjectId

clip_image048

clip_image050

 

Office 365 Userlarının şifrelerini belli bir süre sonra var olan Password Policy den etkilenerek değiştirmesin istersek aşağıda ki komutu çalıştırabiliriz.

 Get-MsolUser | Set-MsolUser –PasswordNeverExpires $True

Belirli bir user’ın bu işlemden etkilenmesini istersek komutumuz;

Set-MsolUser –UserPrincipalName “[email protected]” –PasswordNeverExpires $false

Office 365 üzerinde ki bir user’ın şifresini değiştirmek istersek;

Set-MsolUserPassword –UserPrincipalName “[email protected]” –NewPassword “Ada1453-”

clip_image052

Get-MsolDomain komutu ile aktif domainlerimizi görebiliriz.

clip_image054

New-MsolDomain –Name “Domain Name” Komutu ile yeni domain ekleyebiliriz.

Set-MsolDomain –Name “Domain Name” –IsDefault Komutu ile istediğimiz domain’ i default hale getirebiliriz.

Exchange Online yönetimi adımlarını incelemeye başlıyoruz. Yine Windows PowerShell kullanarak Exchange Online platformunu yöneteceğiz.

Tekrar aşağıda ki adımları uyguluyoruz.

Windows PowerShell’ i Run As Administrator olarak çalıştırdıktan sonra, Get-ExecutionPolicy komutu ile PowerShell CMDletsleri çalıştırıp, çalıştıramadığımızı kontrol edelim.

clip_image055

Güvenlik ilkesi olarak, Unrestricted olduğunu görüyoruz.

Güvenlik ilkelerini ilkyazımızda paylaşmıştım. Tekrar hatırlayalım.

Windows PowerShell’in komutları çalıştırmak için dört adet güvenlik ilkesi vardır.

·         Unrestricted: Hiçbir yetkisel kısıtlama olmadan; Tüm Windows PowerShell komutlarını çalıştırılabilir.

·         AllSigned: Güvenilen bir yayımcı tarafından imzalanan Sadece komut çalıştırılabilir.

·         Restricted: Kısıtlı komut çalıştırılabilir. Windows PowerShell yalnızca etkileşimli modda kullanılabilir.

·         RemoteSigned: Çalıştırılmadan önce İndirilen komut güvenilen bir yayımcı tarafından imzalanmış olmalıdır.

Eğer Get-ExecutionPolicy komutunu çalıştırdığınızda Restricted karşılığını alırsanız ki bu kısıtlı olduğu anlamına gelir, aşağıda ki komutlar ile kendinize yetki verebilirsiniz.

·         Set-ExecutionPolicy Unrestricted

·         Set-ExecutionPolicy AllSigned

·         Set-ExecutionPolicy RemoteSigned

$LiveCred = Get-Credential, $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection

Import-PSSession $Session

Connect-MsolService –Credential $cred komutları ile Office 365 hesabımıza bağlanıyoruz. Bağlantı detayları için ilk makalemize göz atabilirsiniz.

Not: Restricted yetkilerini vermezseniz, Import-PSSession $Session komutu sonrası hata alırsınız.

clip_image056

Exchange Online ile PowerShell üzerinden neler yapabiliriz? Exchange Online adımını birkaç örnek ile tamamlayalım. Aslında On Prem ortamımızda bulunan Exchange Server’ ı yönetir gibi, Office 365 üzerinde ki Exchange Online’ da aynı orantıda PowerShell ile yönetebiliriz.

Daha fazla Exchange Online PowerShell CMDlets bilgisi için aşağıda ki linki incelemenizi öneririm.

https://technet.microsoft.com/en-us/library/jj200677%28v=exchg.150%29.aspx

En temel komutumuz Get-MailBox

clip_image058

SMTP adr esini öğrenmemiz için, Get-Mailbox “ufuk.tatlidil” |fl *primarysmtpaddress*

clip_image060

Kullanıcı izinlerini görmek için, Get-RecipientPermission ufuk.tatlidil

clip_image062

Ufuk.Tatlidil kullanıcısına İlkim.Ada kullanıcı mailbox’ı için Full Access verelim.

Add-MailboxPermission -Identity “[email protected]” -AccessRights FullAccess -user “[email protected]

clip_image064

Get-RecipientPermission ile kontrol edebilirsiniz.

clip_image066

Office 365 Exchange Online User Mailbox’ ı adres defterinden gizlemek için, Set-Mailbox “ilkim.ada” –HiddenFromAddressListsEnabled $true

Adres defterinden gizlenen Office 365 Exchange Online User Mailbox’ ı adres defterinden göstermek için, Set-Mailbox “ilkim.ada” –HiddenFromAddressListsEnabled $false

clip_image067

Get-Mailbox ilkim.ada | fl ile Office 365 Exchange Online usermailbox’ ın içeriğini detaylarını görebiliriz.

clip_image069

 

Shared mailbox oluşturmak için, New-Mailbox -Name “Cloud Team” –Alias “cloudteam” –Shared

clip_image071

clip_image073

Shared mailbox oluşturduk. Kullanılabilir limit olarak 50 gb. Kota default olarak geldi. Ancak bu durumda Shared Mailbox’ a lisans atamak gerekir. Ancak, biz kotasını 5 gb. Olarak limitlersek, lisans atamamıza gerek kalmaz.

Set-Mailbox “[email protected]” -ProhibitSendReceiveQuota 5GB -ProhibitSendQuota 4.75GB -IssueWarningQuota 4.5GB

clip_image075

clip_image077

Exchange Online User Mailboxları Export etmek için, Get-Mailbox |select emailaddresses, name, userprincipalname, identity|export-csv -path C:\ExchangeOnlineUserMBX.csv

clip_image079

clip_image081

 

IMAP tabanlı mail hizmetlerinden  Office 365 Exchange Online migration yapacaksak, IMAP hizmetinin geçiş için uygun olup olmadığını da Poweshell üzerinden test edebiliriz.

Test-MigrationServerAvailability –Imap –RemoteServer “imap-mail.outlook.com” –Port 993

clip_image083

Office 365 Exchange Online PowerShell üzerinde ki işlemlerimiz bittikten sonra Remove-PSSession $Session komutu ile Powershell ile Office 365 hesabımızın bağlantısını sonlandırabiliriz. PowerShell üzerinden direk çarpıyla çıkarsak, 30 dk. İçerisinde session otomatik sonlanacaktır.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu