Microsoft 365 için PowerShell'i neden kullanmanız gerekiyor?

Bu makale hem Microsoft 365 Kurumsal hem de Office 365 Kurumsal için geçerlidir.

Microsoft 365 yönetim merkezi ile Microsoft 365 kullanıcı hesaplarınızı ve lisanslarınızı yönetebilirsiniz. Exchange Online, Teams ve SharePoint gibi Microsoft 365 hizmetlerinizi de yönetebilirsiniz. Bunun yerine bu hizmetleri yönetmek için PowerShell kullanıyorsanız hız, otomasyon ve ek özellikler için komut satırı ve betik dili ortamından yararlanabilir ve bu ortamdan yararlanabilirsiniz.

Not

Azure Active Directory modülünün yerini Microsoft Graph PowerShell SDK'sı alır. Tüm Microsoft Graph API'lerine erişmek için Microsoft Graph PowerShell SDK'sını kullanabilirsiniz. Daha fazla bilgi için bkz. Microsoft Graph PowerShell SDK'sını kullanmaya başlama. Bu makaledeki bazı Microsoft 365 için PowerShell komutları Microsoft Graph PowerShell kullanacak şekilde güncelleştirilmiştir.

Bu makalede, Microsoft 365'i yönetmek için PowerShell'in nasıl kullanılacağı gösterilmektedir:

  • Microsoft 365 yönetim merkezi göremediğiniz ek bilgileri gösterme

  • Özellikleri ve ayarları yalnızca PowerShell ile yapılandırma

  • Toplu işlemler yapma

  • Verileri filtreleme

  • Verileri yazdırma veya kaydetme

  • Hizmetler arasında yönetme

Microsoft 365 için PowerShell'in Windows tabanlı hizmetler ve platformlar için bir komut satırı ortamı olan Windows PowerShell için bir dizi modül olduğunu unutmayın. Bu ortam, ek modüllerle genişletilebilen bir komut kabuğu dili oluşturur. Basit veya karmaşık komutlar veya betikler yürütmek için bir yol sağlar. Örneğin, Microsoft 365 için PowerShell modüllerini yükledikten ve Microsoft 365 aboneliğinize bağlandıktan sonra, Microsoft Exchange Online için tüm kullanıcı posta kutularını listelemek için aşağıdaki komutu çalıştırabilirsiniz:

Get-Mailbox

Posta kutularının listesini Microsoft 365 yönetim merkezi kullanarak da alabilirsiniz, ancak tüm web uygulamalarınız için tüm siteler için tüm listelerdeki öğeleri saymak kolay değildir.

Microsoft 365 için PowerShell, Microsoft 365 yönetim merkezi değiştirmek yerine Microsoft 365'i yönetmenize yardımcı olmak için tasarlanmıştır. Yalnızca Microsoft 365 için PowerShell komutları aracılığıyla gerçekleştirilebilecek bazı yapılandırma yordamları olduğundan yöneticilerin Microsoft 365 için PowerShell'i kullanabilmesi gerekir. Bu durumlarda şunların nasıl yapılacağını bilmeniz gerekir:

  • Microsoft 365 için PowerShell modüllerini yükleyin (her yönetici bilgisayar için yalnızca bir kez yapılır).

  • Microsoft 365 aboneliğinize bağlanın (her PowerShell oturumu için bir kez).

  • Microsoft 365 için gerekli PowerShell komutlarını çalıştırmak için gereken bilgileri toplayın.

  • Microsoft 365 için PowerShell komutlarını çalıştırın.

Bu temel becerileri öğrendikte, Posta Kutusu Al komutunu kullanarak posta kutusu kullanıcılarınızı listelemeniz gerekmez. Ayrıca, tüm web uygulamalarınız için tüm sitelerin tüm listelerindeki tüm öğeleri saymak için daha önce alıntı yapılan komut gibi yeni bir komutun nasıl oluşturulacağını da anlamanız gerekmez. Microsoft ve yöneticiler topluluğu, gerektiğinde bu tür görevlerde size yardımcı olabilir.

Microsoft 365 için PowerShell, Microsoft 365 yönetim merkezi

Microsoft 365 yönetim merkezi çok yararlı bilgiler görüntüler, ancak Microsoft 365'in kullanıcılar, lisanslar, posta kutuları ve siteler hakkında depolediği tüm olası bilgileri görüntülemez. Microsoft 365 yönetim merkezi kullanıcılar ve gruplar için bir örnek aşağıda verilmiştır:

Microsoft 365 yönetim merkezi kullanıcıların ve grupların görüntülenmesi örneği.

Bu görünüm, birçok durumda ihtiyacınız olan bilgileri sağlar. Ancak, daha fazlasına ihtiyaç duyduğunuz zamanlar vardır. Örneğin, Microsoft 365 lisanslaması (ve bir kullanıcının kullanabileceği Microsoft 365 özellikleri) kısmen kullanıcının coğrafi konumuna bağlıdır. Birleşik Devletler yaşayan bir kullanıcıya genişletebileceğiniz ilkeler ve özellikler, Hindistan veya Belçika'daki bir kullanıcıya genişletebileceğiniz ilkeler ve özelliklerle aynı olmayabilir. Kullanıcının coğrafi konumunu belirlemek için Microsoft 365 yönetim merkezi şu adımları izleyin:

  1. Kullanıcının Görünen Adı'na çift tıklayın.

  2. Kullanıcı özellikleri görüntüleme bölmesinde ayrıntılar'ı seçin.

  3. Ayrıntılar ekranında ek ayrıntılar'ı seçin.

  4. Ülke veya bölge başlığını bulana kadar kaydırın:

    Microsoft 365 yönetim merkezi bir kullanıcının bölge bilgileri örneği.

  5. Kullanıcının görünen adını ve konumunu bir kağıda yazın veya kopyalayıp Not Defteri'ne yapıştırın.

Bu yordamı her kullanıcı için yinelemeniz gerekir. Çok sayıda kullanıcınız varsa, bu işlem yorucu olabilir. PowerShell ile aşağıdaki komutları kullanarak tüm kullanıcılarınız için bu bilgileri görüntüleyebilirsiniz.

Not

Azure Active Directory modülünün yerini Microsoft Graph PowerShell SDK'sı alır. Tüm Microsoft Graph API'lerine erişmek için Microsoft Graph PowerShell SDK'sını kullanabilirsiniz. Daha fazla bilgi için bkz. Microsoft Graph PowerShell SDK'sını kullanmaya başlama.

İlk olarak, Microsoft 365 kiracınıza bağlanmak için bir Microsoft Entra DC yöneticisi, Cloud Application Yönetici veya Genel yönetici hesabı kullanın.

Bir kullanıcı için bilgi almak için User.ReadBasic.All izin kapsamı veya 'Lisans ata' Graph API başvuru sayfasında listelenen diğer izinlerden biri gerekir.

Kiracıda bulunan lisansları okumak için Organization.Read.All izin kapsamı gereklidir.

Not

Azure AD ve MSOnline PowerShell modülleri 30 Mart 2024 itibarıyla kullanım dışı bırakılmıştır. Daha fazla bilgi edinmek için kullanımdan kaldırma güncelleştirmesini okuyun. Bu tarihten sonra bu modüllere yönelik destek, Microsoft Graph PowerShell SDK'sına geçiş yardımı ve güvenlik düzeltmeleriyle sınırlıdır. Kullanım dışı bırakılan modüller Mart 30 2025'e kadar çalışmaya devam edecektir.

Microsoft Entra ID (eski adıyla Azure AD) ile etkileşime geçmek için Microsoft Graph PowerShell'e geçiş öneririz. Sık sorulan geçiş soruları için Bkz. Geçiş SSS. Not: MSOnline'ın 1.0.x sürümleri 30 Haziran 2024'den sonra kesintiye neden olabilir.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

İşte sonuçlara bir örnek:

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki tüm kullanıcıları alın (Get-MgUser), ancak yalnızca her kullanıcının adını ve konumunu görüntüleyin (DisplayName, UsageLocation'ı seçin).

Microsoft 365 için PowerShell bir komut kabuğu dilini desteklediğinden, Get-MgUser komutuyla elde edilen bilgileri daha fazla işleyebilirsiniz. Örneğin, bu kullanıcıları konumlarına göre sıralamak, tüm Brezilyalı kullanıcıları birlikte gruplandırmak, tüm Birleşik Devletler kullanıcıları birlikte gruplandırmak vb. Komut şu şekildedir:

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

İşte sonuçlara bir örnek:

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki tüm kullanıcıları alın, ancak yalnızca her kullanıcının adını ve konumunu görüntüleyin ve önce konumlarına ve sonra adlarına göre sıralayın (Sort UsageLocation, DisplayName).

Ek filtreleme de kullanabilirsiniz. Örneğin, yalnızca Brezilya'da bulunan kullanıcılar hakkında bilgi görmek istiyorsanız şu komutu kullanın:

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

İşte sonuçlara bir örnek:

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki konumu Brezilya olan tüm kullanıcıları alın (Burada {$_). UsageLocation -eq "BR"}) ve ardından her kullanıcının adını ve konumunu görüntüleyin.

Büyük etki alanları hakkında bir not

On binlerce kullanıcı içeren büyük bir etki alanınız varsa, bu makalede gösterdiğimiz örneklerden bazılarını denemek azaltmaya neden olabilir. İşlem gücü ve kullanılabilir ağ bant genişliği gibi faktörlere bağlı olarak, aynı anda çok fazla şey yapmaya çalışıyor olabilirsiniz. Büyük kuruluşlar bu PowerShell işlemlerinden bazılarını iki komut olarak bölmek isteyebilir.

Örneğin, aşağıdaki komut tüm kullanıcı hesaplarını döndürür ve her birine ilişkin adı ve konumu gösterir:

Get-MgUser -All | Select DisplayName, UsageLocation

Bu, daha küçük etki alanları için harika çalışır. Ancak büyük bir kuruluşta bu işlemi iki komuta bölmek isteyebilirsiniz: kullanıcı hesabı bilgilerini bir değişkende depolamak için bir komut ve gerekli bilgileri görüntülemek için başka bir komut. İşte bir örnek:

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

Bu PowerShell komut kümesinin yorumu şöyledir:

  1. Geçerli Microsoft 365 aboneliğindeki tüm kullanıcıları alın ve bilgileri $x ($x = Get-MgUser) adlı bir değişkende depolayın.
  2. $x değişkeninin içeriğini görüntüleyin, ancak yalnızca her kullanıcının adını ve konumunu ekleyin ($x | DisplayName, UsageLocation'ı seçin).

Microsoft 365'in yalnızca Microsoft 365 için PowerShell ile yapılandırabileceğiniz özellikleri vardır

Microsoft 365 yönetim merkezi, çoğu ortam için geçerli olan yaygın, yararlı yönetim görevlerine erişim sağlamak için tasarlanmıştır. Başka bir deyişle, Microsoft 365 yönetim merkezi tipik yöneticinin en yaygın yönetim görevlerini gerçekleştirebilmesi için tasarlanmıştır. Ancak yönetim merkezinde yapılamaz bazı görevler vardır.

Örneğin, Skype Kurumsal Online yönetim merkezi özel toplantı davetleri oluşturmak için birkaç seçenek sağlar:

Skype Kurumsal Online Yönetici merkezinde özel toplantı davetlerinin görüntülenmesi örneği.

Bu ayarlarla toplantı davetlerine kişiselleştirme ve profesyonellik dokunuşu ekleyebilirsiniz. Ancak, yalnızca özel toplantı davetleri oluşturmak yerine toplantı yapılandırma ayarlarından daha fazlası vardır. Örneğin, varsayılan olarak toplantılar şunları sağlar:

  • Her toplantıya otomatik giriş elde etmek için anonim kullanıcılar.

  • Toplantıyı kaydedecek katılımcılar.

  • Kuruluşunuzdaki tüm kullanıcılar toplantıya katıldıklarında sunucu olarak belirlenecek.

Bu ayarlar Skype Kurumsal Online yönetim merkezinde kullanılamaz. Bunları Microsoft 365 için PowerShell'den denetleyebilirsiniz. Bu üç ayarı devre dışı bırakmaya yönelik bir komut aşağıdadır:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

Not

Bu komutu çalıştırmak için Skype Kurumsal Online PowerShell Modülünü yüklemeniz gerekir.

Bu PowerShell komutunun yorumu şöyledir:

  1. Yeni Skype Kurumsal Çevrimiçi toplantıların ayarlarında (Set-CsMeetingConfiguration), anonim kullanıcıların toplantılara otomatik giriş yapmalarına izin verme özelliğini devre dışı bırakın (-AdmitAnonymousUsersByDefault $False).
  2. Katılımcıların toplantıları kaydetme özelliğini devre dışı bırakın (-AllowConferenceRecording $False).
  3. Kuruluşunuzdan tüm kullanıcıları sunucu olarak belirlemeyin (-DesignateAsPresenter "Yok").

Bu varsayılan ayarları geri yüklemek (seçenekleri etkinleştirmek) için şu komutu çalıştırın:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

Benzer başka senaryolar da vardır. Bu nedenle yöneticiler Microsoft 365 için PowerShell komutlarını nasıl çalıştıracaklarını bilmelidir.

Microsoft 365 için PowerShell toplu işlemler için harikadır

Microsoft 365 yönetim merkezi gibi görsel arabirimler, yapmanız gereken tek bir işlem olduğunda en değerlidir. Örneğin, bir kullanıcı hesabını devre dışı bırakmanız gerekiyorsa, bir onay kutusunu hızla bulup temizlemek için yönetim merkezini kullanabilirsiniz. Bu, PowerShell'de benzer bir işlem gerçekleştirmekten daha kolay olabilir.

Ancak, büyük bir dizi başka şey içinde birçok şeyi veya bazı seçili öğeleri değiştirmeniz gerekiyorsa, Microsoft 365 yönetim merkezi en iyi araç olmayabilir. Örneğin, binlerce telefon numarasındaki ön eki değiştirmeniz veya belirli bir kullanıcı olan Ken Myer'ı tüm SharePoint sitelerinden kaldırmanız gerekeceğini varsayalım. bunu Microsoft 365 yönetim merkezi nasıl yaparsın?

Son örnekte, yüzlerce SharePoint siteniz olduğunu ve Ken Meyer'in hangilerinin üyesi olduğunu bilmediğinizi varsayalım. Microsoft 365 yönetim merkezi başlayıp her site için şu yordamı uygulamanız gerekir:

  1. Sitenin URL'sini seçin.

  2. Site koleksiyonu özellikleri kutusunda Web Sitesi Adresi bağlantısını seçerek siteyi açın.

  3. Sitede Paylaş'ı seçin.

  4. Paylaş iletişim kutusunda, sitede izinleri olan tüm kullanıcıları gösteren bağlantıyı seçin:

    SharePoint Yönetici merkezinde bir SharePoint sitesinin üyelerini görüntüleme örneği.

  5. Paylaşılan iletişim kutusunda Gelişmiş'i seçin.

  6. Kullanıcı listesini aşağı kaydırın, Ken Myer'ı bulun ve seçin (site izinleri olduğu varsayılarak) ve ardından Kullanıcı İzinlerini Kaldır'ı seçin.

Bu, birkaç yüz site için uzun sürebilir.

Alternatif olarak, Ken Myer'ı tüm sitelerinden kaldırmak için Microsoft 365 için PowerShell'de aşağıdaki komutu çalıştırmaktır:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

Not

Bu komut, SharePoint PowerShell modülünü yüklemenizi gerektirir.

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki (Get-SPOSite) tüm SharePoint sitelerini alın ve her site için Ken Meyer'i buna erişebilen kullanıcılar listesinden kaldırın (ForEach {Remove-SPOUser -Site $_). Url -LoginName "kenmyer@litwareinc.com"}).

Microsoft 365'e Ken Meyer'i erişimi olmayanlar da dahil olmak üzere her siteden kaldırmasını söyleriz. Bu nedenle sonuçlar, erişimi olmayan sitelerle ilgili hatalar gösterir. Ken Meyer'i yalnızca oturum açma listelerinde bulunan sitelerden kaldırmak için bu komutta ek bir koşul kullanabiliriz. Ancak döndürülen hatalar sitelerin kendilerine zarar vermez. Bu komutun yüzlerce site üzerinde çalışması birkaç dakika sürebilir, Microsoft 365 yönetim merkezi üzerinden çalışma saatleri yerine.

İşte başka bir toplu işlem örneği. Yeni bir SharePoint yöneticisi olan Bonnie Kearney'i kuruluştaki tüm sitelere eklemek için bu komutu kullanın:

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki tüm SharePoint sitelerini alın ve her site için, sitenin Üyeler grubuna (ForEach {Add-SPOUser -Site $_) oturum açma adını ekleyerek Bonnie Kearney erişimine izin verin. Url -LoginName "bkearney@litwareinc.com" -Group "Members"}).

Microsoft 365 için PowerShell, verileri filtreleme konusunda harikadır

Microsoft 365 yönetim merkezi, hedeflenen bir bilgi alt kümesini kolayca bulmak için verilerinizi filtrelemek için çeşitli yollar sağlar. Örneğin, Exchange bir kullanıcı posta kutusunun hemen hemen tüm özelliklerine göre filtrelemeyi kolaylaştırır. Örneğin, Bloomington şehrinde yaşayan tüm kullanıcıların posta kutularının listesi aşağıdadır:

Bloomington şehrinde yaşayan tüm kullanıcıların posta kutuları listesi için Microsoft 365 yönetim merkezi gelişmiş arama yapma örneği.

Exchange yönetim merkezi, filtre ölçütlerini birleştirmenize de olanak tanır. Örneğin, Bloomington'da yaşayan ve Finans departmanında çalışan tüm kişilerin posta kutularını bulabilirsiniz.

Ancak Exchange Yönetici merkezinde yapabileceklerinin sınırlamaları vardır. Örneğin, Bloomington veya San Diego'da yaşayan kişilerin posta kutularını veya Bloomington'da yaşamayan tüm kişilerin posta kutularını kolayca bulamazsınız.

Bloomington veya San Diego'da yaşayan tüm kişilerin posta kutularının listesini almak için aşağıdaki Microsoft 365 için PowerShell komutunu kullanabilirsiniz:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

İşte sonuçlara bir örnek:

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki, San Diego veya Bloomington (Where {$_) şehrinde posta kutusu olan tüm kullanıcıları alın. RecipientTypeDetails -eq "UserMailbox" -and ($_. Şehir -eq "San Diego" -veya $_. City -eq "Bloomington")}) ve ardından her birine ilişkin adı ve şehri görüntüleyin (DisplayName, City'yi seçin).

Bloomington dışında herhangi bir yerde yaşayan kişilerin tüm posta kutularını listeleme komutu aşağıdadır:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

İşte sonuçlara bir örnek:

DisplayName                               City
-----------                               ----
MOD Administrator                         Redmond
Alex Darrow                               San Diego
Allie Bellew                              Bellevue
Anne Wallace                              Louisville
Aziz Hassouneh                            Cairo
Belinda Newman                            Charlotte
Bonnie Kearney                            San Diego
David Longmuir                            Waukesha
Denis Dehenne                             Birmingham
Garret Vargas                             Seattle
Garth Fort                                Tulsa
Janet Schorr                              Bellevue

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğinde, Bloomington şehrinde bulunmayan posta kutusu olan tüm kullanıcıları alın ({$_. RecipientTypeDetails -eq "UserMailbox" -ve $_. City -ne "Bloomington"}) ve ardından her birine ilişkin adı ve şehri görüntüleyin.

Joker karakter kullanma

Bir adın bir bölümüyle eşleştirmek için PowerShell filtrelerinizde joker karakterler de kullanabilirsiniz. Örneğin, bir kullanıcı hesabı aradığınızı varsayalım. Hatırlayabildiğiniz tek şey, kullanıcının soyadının Anderson ya da Henderson ya da Jorgenson olduğu.

Arama aracını kullanarak ve üç farklı arama yaparak Microsoft 365 yönetim merkezi bu kullanıcıyı izleyebilirsiniz:

  • Anderson için bir tane

  • Bir tane de Henderson için.

  • Jorgenson için bir tane

Bu adların üçü de "son" ile sona erdiğinden, PowerShell'e adı "son" ile biten tüm kullanıcıları görüntülemesini söyleyebilirsiniz. Komut şu şekildedir:

Get-User -Filter '{LastName -like "*son"}'

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki tüm kullanıcıları alın, ancak yalnızca soyadları "son" ile biten kullanıcıları listeleyen bir filtre kullanın (-Filter '{LastName -like "*son"}'). * , kullanıcının soyadındaki harfler olan tüm karakter kümelerini ifade eden bir ifadedir.

Microsoft 365 için PowerShell, verileri yazdırmayı veya kaydetmeyi kolaylaştırır

Microsoft 365 yönetim merkezi, veri listelerini görüntülemenizi sağlar. Skype Kurumsal Online için etkinleştirilen kullanıcıların listesini görüntüleyen Skype Kurumsal Online yönetim merkezi örneği aşağıda verilmişti:

Skype Kurumsal Online için etkinleştirilen kullanıcıların listesini görüntüleyen Skype Kurumsal Online Yönetici merkezi örneği.

Bu bilgileri bir dosyaya kaydetmek için bir belgeye veya Microsoft Excel çalışma sayfasına yapıştırmanız gerekir. Her iki durumda da ek biçimlendirme gerekebilir. Ayrıca, Microsoft 365 yönetim merkezi görüntülenen listeyi doğrudan yazdırmak için bir yol sağlamaz.

Neyse ki, PowerShell'i yalnızca listeyi görüntülemekle kalmayıp Excel'e kolayca aktarılabilir bir dosyaya kaydetmek için de kullanabilirsiniz. Aşağıda, Skype Kurumsal Çevrimiçi kullanıcı verilerini virgülle ayrılmış değerler (CSV) dosyasına kaydetmeye yönelik örnek bir komut verilmiştir. Bu komut, excel çalışma sayfasında kolayca tablo olarak içeri aktarılabilir:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

İşte sonuçlara bir örnek:

Virgülle ayrılmış değerler dosyasına kaydedilmiş Skype Kurumsal Çevrimiçi kullanıcı verileri için Excel çalışma sayfasına aktarılan tablo örneği.

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki tüm Skype Kurumsal Çevrimiçi kullanıcıları alın (Get-CsOnlineUser); yalnızca kullanıcı adını, UPN'yi ve konumu (DisplayName, UserPrincipalName, UsageLocation'ı seçin) alın ve bu bilgileri C:\Logs\SfBUsers.csv adlı bir CSV dosyasına kaydedin (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

Bu listeyi XML dosyası veya HTML sayfası olarak kaydetmek için seçenekleri de kullanabilirsiniz. Aslında, ek PowerShell komutlarıyla, istediğiniz özel biçimlendirmeyle doğrudan bir Excel dosyası olarak kaydedebilirsiniz.

Ayrıca, liste görüntüleyen bir PowerShell komutunun çıkışını doğrudan Windows'taki varsayılan yazıcıya gönderebilirsiniz. Aşağıda örnek bir komut verilmişti:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

Yazdırılan belgeniz şöyle görünür:

Doğrudan Windows'taki varsayılan yazıcıya gönderilen bir PowerShell komutunun çıktısı olan yazdırılan belge örneği.

Bu PowerShell komutunun yorumu şöyledir: Geçerli Microsoft 365 aboneliğindeki tüm Skype Kurumsal Çevrimiçi kullanıcıları alın; yalnızca kullanıcı adını, UPN'yi ve konumu alın ve bu bilgileri varsayılan Windows yazıcısına (Yazıcı Dışı) gönderin.

Yazdırılan belge, PowerShell komut penceresindeki görüntüyle aynı basit biçimlendirmeye sahiptir. Basılı kopyayı almak için | Komutun sonuna kadar Yazıcı Dışı ...

Microsoft 365 için PowerShell, sunucu ürünleri arasında yönetmenizi sağlar

Microsoft 365'i oluşturan bileşenler birlikte çalışacak şekilde tasarlanmıştır. Örneğin, Microsoft 365'e yeni bir kullanıcı eklediğinizi ve kullanıcının departmanı ve telefon numarası gibi bilgileri belirttiğinizi varsayalım. Daha sonra kullanıcının bilgilerine Microsoft 365 hizmetlerinden herhangi birinde eriştiyseniz bu bilgiler kullanılabilir: Skype Kurumsal Online, Exchange veya SharePoint.

Ancak bu, ürün paketini kapsayan yaygın bilgiler içindir. Kullanıcının Exchange posta kutusuyla ilgili bilgiler gibi ürüne özgü bilgiler genellikle pakette kullanılamaz. Örneğin, kullanıcının posta kutusunun etkinleştirilip etkinleştirilmediğiyle ilgili bilgiler yalnızca Exchange yönetim merkezinde kullanılabilir.

Tüm kullanıcılarınız için aşağıdaki bilgileri gösteren bir rapor oluşturmak istediğinizi varsayalım:

  • Kullanıcının görünen adı

  • Kullanıcının Microsoft 365 lisansına sahip olup olmadığı

  • Kullanıcının Exchange posta kutusunun etkinleştirilip etkinleştirilmediği

  • Kullanıcının Skype Kurumsal Online için etkinleştirilip etkinleştirilmediği

Microsoft 365 yönetim merkezi kolayca böyle bir rapor oluşturamazsınız. Bunun yerine, excel çalışma sayfası gibi bilgileri depolamak için ayrı bir belge oluşturmanız gerekir. Ardından, Microsoft 365 yönetim merkezi tüm kullanıcı adlarını ve lisans bilgilerini alın, Exchange yönetim merkezinden posta kutusu bilgilerini alın, Skype Kurumsal Online Yönetici merkezinden Skype Kurumsal Online bilgilerini alın ve bu bilgileri birleştirin.

Alternatif olarak, raporu sizin için derlemek için bir PowerShell betiği kullanabilirsiniz.

Aşağıdaki örnek betik, bu makalede şimdiye kadar gördüğünüz komutlardan daha karmaşıktır. Ancak, aksi takdirde elde etmek zor olan bilgi görünümleri oluşturmak için PowerShell kullanma olasılığını gösterir. İşte ihtiyacınız olan listeyi derlemek ve görüntülemek için betik:

Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All

foreach ($i in $x)
    {
      $y = Get-Mailbox -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled

      $y = Get-CsOnlineUser -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
    }

$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB

İşte sonuçlara bir örnek:

DisplayName             IsLicensed   IsMailboxEnabled   EnabledForSfB
-----------             ----------   ----------------   --------------
Bonnie Kearney          True         True               True
Fabrice Canel           True         True               True
Brian Johnson           False        True               False
Anne Wallace            True         True               True
Alex Darrow             True         True               True
David Longmuir          True         True               True
Katy Jordan             False        True               False
Molly Dempsey           False        True               False

Bu PowerShell betiğinin yorumu şöyledir:

  1. Geçerli Microsoft 365 aboneliğindeki tüm kullanıcıları alın ve bilgileri $x ($x = Get-MgUser) adlı bir değişkende depolayın.
  2. $x değişkenindeki tüm kullanıcıların üzerinde çalışan bir döngü başlatın (foreach ($x'de $i)).
  3. $y adlı bir değişken tanımlayın ve kullanıcının posta kutusu bilgilerini içinde depolayın ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. IsMailBoxEnabled adlı kullanıcı bilgilerine yeni bir özellik ekleyin. Kullanıcı posta kutusunun IsMailBoxEnabled özelliğinin değerine ayarlayın ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. $y adlı bir değişken tanımlayın ve kullanıcının Skype Kurumsal Çevrimiçi bilgilerini içinde depolayın ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. EnabledForSfB adlı kullanıcı bilgilerine yeni bir özellik ekleyin. Kullanıcının Skype Kurumsal Çevrimiçi bilgilerinin Enabled özelliğinin değerine ayarlayın ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. Kullanıcıların listesini görüntüleyin, ancak yalnızca adlarını, lisanslı olup olmadıklarını ve posta kutularının etkinleştirilip etkinleştirilmediğini ve Skype Kurumsal Online için etkinleştirilip etkinleştirilmediklerini belirten iki yeni özelliği ekleyin ($x | DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB'yi seçin.

Ayrıca bkz.

Microsoft 365 için PowerShell'i kullanmaya başlama

PowerShell ile Microsoft 365 kullanıcı hesaplarını, lisanslarını ve gruplarını yönetme

Microsoft 365'te rapor oluşturmak için Windows PowerShell kullanma