Office 365’te PowerShell Yardımıyla Kullanıcı Hesap Bilgileri Alma ve Düzenleme

Office 365 hesabınıza komut satırından (burada Powershell oluyor) ile bağlantı sağlayıp kullanıcılar ile ilgili istediğiniz bilgileri nasıl alabilirsiniz? Ya da varolan hesaplar üzerinde değişiklikleri nasıl sağlarsınız. İşte bu yazıda bu işlemlerin nasıl yapıldığını göreceksiniz.

Office 365 e bağlanabilmek için öncelikle bilgisayarınızda Windows Azure Active Directory Module for Windows PowerShell yüklü olması gerekiyor. Gerekli bileşeni aşağıdaki linklerden yükleyebilirsiniz.

Windows Azure Active Directory Module for Windows PowerShell (32-bit version)

Windows Azure Active Directory Module for Windows PowerShell (64-bit version)

Yükleme işlemi tamamladıktan sonra Windows PowerShell uygulamasına sağ tıklayarak Admin yetkisi ile çalıştırın.

Sırasıyla aşağıdaki komutları yazarak Office 365 e bağlanabilirsiniz.

Import-Module msonline


Resim-1

Aşağıdaki komutu yazdığınızda ufak bir pencere açılacaktır. Bu pencereye Office 365 kullanıcı adınızı ve şifrenizi girmeniz gerekiyor. Bu kullandığınız hesabın Office 365 üzerinde Administrator yetkisi olmalı.

$cred = Get-Credential

Connect-MsolService -cred $cred


Resim-2

Bağlantı sağladıktan sonra aşağıdaki komutu yazarak Office 365 üzerinde kullanabileceğiniz komutların listesine ulaşabilirsiniz.

Get-Command –Module msonline


Resim-3

Bu noktadan sonra komutları ihtiyaçlarınıza göre hazırlayabilir, çalıştırabilir isterseniz de .csv formatında kullanıcı bilgilerinizi export edebilirsiniz.

Office 365 üzerinde kullanıcı oluşturmak için aşağıdaki komutu kullanabilirsiniz.

New-MsolUser -UserPrincipalName timur.sahin@domain.com -DisplayName ” Timur Şahin” -FirstName “Timur ” -LastName “Şahin” -UsageLocation “TR” -LicenseAssignment “Domain:BPOS_Standard”

Bu komut Timur Şahin adında Türkiye de timur.sahin@domain.com hesap adresi ile bir kullanıcı oluşturacaktır. Komut sonundaki lisans ise firmanızın aldığı pakete göre değişebilir. Bu örnekte Timur Şahin kullanıcısına Standart lisans atadım.

Set-MsolUserLicense -UserPrincipalName ` “timur.sahin@domain.com” ` -AddLicenses domain:ENTERPRISEPACK
komutu ile timur.sahin@domain.com kullanıcısına enterprise lisans atayabilirsiniz.

Set-MsolUserLicense `-UserPrincipalName “timur.sahin@domain.com” ` -AddLicenses <tenant>:POWER_BI_STANDALONE `-RemoveLicenses domain:ENTERPRISEPACK
komutu ile de eklenmiş bir lisansı iptal edebilirsiniz.

Aşağıdaki komut ile de bu kullanıcıya şifre belirleyebilirsiniz.

Set-MsolUserPassword -userPrincipalName timur.sahin@domain.com -NewPassword “Test$ifre1” -ForceChangePassword $false

Devamında ise bu kullanıcının unvan ve departman bilgilerini aşağıdaki komut ile güncelleyebilirsiniz. Set-MsolUser -UserPrincipalName timur.sahin@domain.com -Title “Manager” -Department “Information Technology”

Aşağıdaki komut yardımıyla bir kullanıcının şifre ayarının “newer expire” işaretli olup olmadığını aşağıdaki komutu çalıştırarak öğrenebilirsiniz.

Get-MSOLUser -UserPrincipalName timur.sahin@domain.com  | FL


Resim-4

“True” ilgili hesabın şifresinin “newer expire” olarak işaretli olduğu anlamına gelir. Bu değer “False” ise eğer aşağıdaki komutu yazarak durumu “True” ya çevirebilirsiniz.

Set-MsolUser -UserPrincipalName timur.sahin@domain.com -PasswordNeverExpires $true komutu ile şifresinin geçerlilik süresinin devam etmesini ve hiç bitmemesini sağlayabilirsiniz.

Get-MsolUser -UserPrincipalName timur.sahin@domain.com komutunu çalıştırırsanız size timur.sahin kullanıcısının adını ve soyadını verecektir.

Get-MsolUser tüm kullanıcıları listeler.

Get-MsolUser -EnabledFilter EnabledOnly ise tüm aktif kullanıcıları listeler.

Get-MsolUser -EnabledFilter EnabledOnly | export-csv c:\scripts\UserInfo.csv komutu ise tüm kullanıcılarınızın listesini c:\scripts\ altına Userinfo.csv olarak export eder.

Get-MsolSubscription komutu şirketinizin hangi Office 365 lisans paketinden kaç tane almış olduğunu gösterir.

Ayrıca kullanıcı özelliklerini kullanarak da işlem yapabilirsiniz. Örneğin aşağıdaki script kullanıcının lokasyon bilgisine göre lisansını atamak için hazırlanmıştır. Yani kullanıcıyı oluşturduktan sonra script i çalıştırdığınızda kullanıcının lokasyon bilgisine göre lisansını atayacaktır. Toplu kullanıcı ekleme işlemlerinden sonra tek tek kullanıcıları tıklayıp lisans atama işlemini toplu yapmanıza yarayacaktır.

#TR lokasyonundaki personele lisans atama
$AccountSkuId = “domain:ENTERPRISEPACK”
$UsageLocation = “TR”
$AdminUsername = “admin@domain.microsoftonline.com”
$AdminPassword = “adminşifreniz”


$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $AdminUsername,$SecurePassword

Connect-MSOLService -Credential $cred

$LicenseOptions = New-MsolLicenseOptions -AccountSkuId $AccountSkuId
$UnlicencedUsers = Get-MSOLUser -UnlicensedUsersOnly -All

$UnlicencedUsers | ForEach-Object {
Set-MsolUser -UserPrincipalName $_.UserPrincipalName -UsageLocation $UsageLocation
Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses $AccountSkuId -LicenseOptions $LicenseOptions
}

Bu satırları not defterine kopyalayıp dosyanızı da TR_LisansAtama.ps1 olarak bilgisayarınıza kaydederseniz ve sonrasında da powershell -noexit komutuyla çalışabilecek bir zamanlanmış görev oluşturursanız örneğin 10 dakikada bir çalışacak şekilde, oluşturduğunuz kullanıcıların lisansları lokasyonuna göre otomatik olarak atanacaktır.

Son olarak http://blogs.technet.com/b/thomas_ashworth/archive/2012/04/11/get-an-office-365-user-statistics-report.aspx linkindeki Script’i size önerebilirim. Bu Script size Office 365 üzerindeki kullanıcılarınıza dair neredeyse tüm bilgileri Export etmenize imkan verir.

  • Peki, hangi kullanıcılar aktif?
  • Kaç kullanıcımın hangi tipte lisansı var?
  • Kaçı İstanbul’da, kaçı Ankara’da?
  • Kimler hangi departmanda?
  • Kaç çeşit personel unvanım var?

Bu bilgileri almak her ne kadar şu an için birkaç komutla yapılabilen küçük işler gibi görünse de, yarın sizden istenebilecek “hangi departmanlar arasında mail trafiği daha çok” sorusuna cevap olacak bir rapor için ilk adım niteliğindedir. “Exchange Online PowerShell” konulu bir sonraki makalede bu konuyu anlatacağım.

İlgili departman çalışanlarına özel hazırlayabileceğiniz eğitim ve nasıl yapılır videoları ile birlikte sistemlerinizin kullanımı noktasındaki kullanıcı yönlendirmelerinizi daha somut sonuçlara ulaştırabilirsiniz. Böylelikle de departmanların mail trafiğini azaltıcı önlemler alabilmeniz mümkün olur.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Yazı gezinmesi

Mobil sürümden çık