Microsoft Graph PowerShell'de Get-MgUser nasıl kullanılır?


Microsoft Graph PowerShell'deki Get-MgUser komutu, Azure Active Directory'de (Microsoft Entra) depolanan Microsoft 365 kiracınızdaki kullanıcılar hakkında bilgi almak için özel olarak tasarlanmıştır. Azure AD'de kullanıcıları yönetmek, yöneticiler için çok önemli bir görevdir. Bu nedenle Get-MgUser cmdlet'ini anlamak, Microsoft Graph içindeki kullanıcı verilerini PowerShell aracılığıyla yönetmek için çok önemlidir. Bu komut, veri alımınızda ince ayar yapmak için filtre, özellik ve arama gibi çeşitli parametreler sunarak kullanıcı özelliklerini ve ilişkilerini verimli bir şekilde almanıza yardımcı olur. süreçler. Bu kapsamlı makalede, temelden gelişmiş kullanıma kadar Azure AD kullanıcı bilgilerini almak için Get-MgUser kullanma sürecinde size yol göstereceğim ve ipuçları vereceğim.

Get-MgUser komutunu anlama

Get-MgUser dünyasına yolculuğumuza başlamak için öncelikle bu komutun ne işe yaradığını anlayalım. Get-MgUser, Microsoft 365'teki kullanıcılar hakkında bilgi almanıza olanak tanıyan bir PowerShell cmdlet'idir. Belirli kullanıcı özelliklerini bulmanız, kullanıcıları belirli ölçütlere göre filtrelemeniz veya lisansları almanız gerekip gerekmediği, Get-MgUser size yardımcı olur.

Get-MgUser'ı kullanmaya başlamak için uygun kimlik bilgilerini kullanarak PowerShell'den Microsoft Graph aracılığıyla Microsoft 365 ortamınıza bağlanmanız gerekir. Bağlandıktan sonra, sonuçları özel ihtiyaçlarınıza göre uyarlamak için Get-MgUser komutunu ve ardından çeşitli parametreleri çalıştırabilirsiniz. İster yeni başlayan ister deneyimli bir PowerShell kullanıcısı olun, bu makale Get-MgUser'ı nasıl etkili bir şekilde kullanacağınızı anlamanıza yardımcı olacaktır.

Microsoft Graph PowerShell Modülünü Yükleme

PowerShell ile Microsoft Graph dünyasına dalmadan önce Microsoft Graph PowerShell Modülünü yüklemek çok önemli bir ilk adımdır. Microsoft Graph API'sine yönelik kapsamlı bir sarmalayıcı olan bu modül, eski Azure AD modülünün yerini alarak tüm Microsoft hizmetleriyle etkileşim kurmanın kolaylaştırılmış ve etkili bir yolunu sağlar. İşte başlamanıza yardımcı olacak basit bir kılavuz:

Microsoft Graph Modülünün zaten yüklü olup olmadığını kontrol etmek için Get-InstalledModule cmdlet'ini kullanın:


Get-InstalledModule Microsoft.Graph

Kurulum Önkoşulları

  • Sisteminizde PowerShell'in en son sürümünün yüklü olduğundan emin olun. Microsoft Graph PowerShell Modülü hem Windows PowerShell 5.1'i hem de PowerShell 7'yi destekler.
  • Azure AD'ye (Microsoft Entra) Yönetici erişiminiz olduğunu doğrulayın. Bu, Get-MgUser komutlarını "yetersiz ayrıcalıklar" hatalarıyla karşılaşmadan yürütmek için çok önemlidir.

Kurulum Adımları

Windows için Microsoft Graph PowerShell modülünü yüklemek için şu adımları izleyin:

  • PowerShell Konsolunu veya Windows Terminalini yönetici olarak açın.
  • Şu komutu çalıştırın: Install-Module Microsoft.Graph -Scope CurrentUser. Bu, sistem genelindeki değişikliklerden kaçınarak mevcut kullanıcı için modülü yükler.
  • İstenirse kuruluma devam etmek için güvenilmeyen depoyu kabul edin.

Bu komut, Microsoft Graph PowerShell modülünün en son sürümünü PowerShell Galerisinden indirip yükleyecektir.

İsteğe Bağlı Beta Sürümü: En son özelliklere ve cmdlet'lere erişim için beta sürümü şu şekilde yüklenebilir: Install-Module Microsoft.Graph.Beta -Scope CurrentUser.

Microsoft Graph PowerShell Modülü, Microsoft Bulut hizmetlerini yönetmeye yönelik birleşik bir yaklaşımı kolaylaştırır ve birden fazla platformda modern kimlik doğrulama yöntemlerini destekler. Açık kaynak yapısı ve düzenli güncellemeleri, en son Graph API değişiklikleriyle uyumluluğu sağlar ve bu da onu hem yöneticiler hem de geliştiriciler için önemli bir araç haline getirir.

PowerShell ile Microsoft Graph'a bağlanma

Microsoft Graph'a PowerShell ile bağlanmak basit bir işlemdir ancak amaçlanan görevleri gerçekleştirmek için gerekli erişime sahip olduğunuzdan emin olmak için izinlere ve kapsamlara dikkatli bir şekilde dikkat edilmesi gerekir. Hem yetkilendirilmiş erişim hem de yalnızca uygulama erişim yöntemleri için özel olarak tasarlanmış bir bağlantı kurmaya yönelik adım adım kılavuzu burada bulabilirsiniz.

Yetkilendirilmiş Erişim Bağlantısı

  1. Gerekli İzinleri Belirleyin: Görevleriniz için gerekli izinleri belirlemek için Find-MgGraphPermission veya Find-MgGraphCommand cmdlet'lerini kullanın. Kullanıcı yönetimine yönelik yaygın kapsamlar arasında, kullanıcı profillerini okumak için User.Read.All ve denetim günlüklerine erişim için AuditLog.Read.All yer alır.
  2. Microsoft Graph'a bağlanın: PowerShell'de Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All" komutunu çalıştırın.
  3. Bağlantıyı Doğrulayın: Başarılı bağlantıyı ve kiracınızdaki kullanıcı hesaplarına erişimi onaylamak için Get-MgUser test komutunu çalıştırın.
  4. İlk kez bağlanıyorsanız bir izin isteği penceresi açılacaktır. Devam etmek için yöneticiye izin verin.

Azure Uygulama Kimliğini kullanarak Yalnızca Uygulama Erişimi Bağlantısı

Yalnızca Uygulama Erişim Bağlantısını kullanarak Microsoft Graph'a bağlanmak için, uygulamayı Microsoft Entra yönetim merkezine kaydetmeniz ve bir istemci sırrını (uygulama parolası), bir sertifikayı veya birleştirilmiş kimlik kimlik bilgisini ilişkilendirmeniz gerekir. Daha sonra uygulamada Microsoft Graph uygulama izinlerini yapılandırın. Daha fazlası burada: PowerShell kullanarak Microsoft Graph'a Nasıl Bağlanılır?

Yalnızca uygulama erişimiyle, oturum açmış bir kullanıcı olmadan işlemleri gerçekleştirebilirsiniz; bu, otomatik komut dosyaları ve arka uç hizmetleri için idealdir.

Ek İpuçları:

  • API Sürümlerini Değiştirme: En son özelliklere veya beta komutlara erişmek için Select-MgProfile -Name Beta'yı kullanarak Beta sürümüne geçin.
  • İzin Kapsamları: İşlemleriniz için her zaman gerekli izin kapsamlarını (User.Read.All, Group.ReadWrite.All) doğrulayın. Bu izinler genellikle Uygulama Yöneticisi, Bulut Uygulama Yöneticisi veya Genel Yönetici rollerine sahip bir hesap gerektirir.
  • Bağlantıyı Kesme: Güvenliği korumak için Disconnect-MgGraph'ı kullanarak görevleriniz tamamlandıktan sonra oturumunuzun bağlantısını kesmeyi unutmayın.

Bu adımları ve ipuçlarını izleyerek PowerShell ile Microsoft Graph'a etkili bir şekilde bağlanarak Microsoft 365 hizmetlerini ve verilerini hassas ve verimli bir şekilde yönetmenize olanak tanıyabilirsiniz. İster kullanıcıya özel işlemler için temsilci erişimi kullanıyor olun, ister daha geniş, uygulama odaklı görevler için yalnızca uygulamaya yönelik erişimi kullanıyor olun, bağlantı sürecini ve gerekli izinleri anlamak, Microsoft Graph'ın tüm gücünden yararlanmanın anahtarıdır.

Artık Get-MgUser hakkında temel bir anlayışa sahip olduğumuza göre, kullanıcı bilgilerini verimli bir şekilde almak için bu komutun nasıl kullanılacağına dair bazı pratik örnekleri inceleyelim.

Get-MgUser cmdlet'i ile Tek Kullanıcı Ayrıntılarını Alma

Get-MgUser cmdlet'ini kullanarak Microsoft Graph'ta tek bir kullanıcının ayrıntılarını almak, gereksinimlerinize göre belirli kullanıcı bilgilerini çıkarmak üzere uyarlanabilecek basit bir işlemdir. Bireysel bir kullanıcı hakkında ayrıntılı bilgi toplamak için bu cmdlet'i verimli bir şekilde nasıl kullanabileceğinizi burada bulabilirsiniz:

Temel Kullanıcı Erişimi

Tek bir kullanıcı hakkında temel bilgi almak için -UserId parametresini kullanıcının ID'si veya UserPrincipalName ile birlikte kullanabilirsiniz. Örneğin:


Get-MgUser -UserId john.doe@Crescent.com

Bu komut, kullanıcının kimliği, görünen adı, e-posta adresi ve kullanıcı asıl adı gibi temel ayrıntılarını getirir. Ayrıca bir kullanıcının Nesne Kimliğini de bu cmdlet'e iletebilirsiniz.

Kullanıcı Bilgilerini Genişletme

Kullanıcının yöneticisi veya doğrudan raporları gibi ilişkiler de dahil olmak üzere daha ayrıntılı bilgi için -ExpandProperty parametresini kullanabilirsiniz. Örneğin, bir kullanıcının yönetici ayrıntılarını almak için şunu yürütün:


Get-MgUser -UserId "michael.brown@Crescent.com" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = {$_.Manager.AdditionalProperties.mail}}

Benzer şekilde, kullanıcının doğrudan raporlarının bir listesini almak için:


Get-MgUser -UserId AdeleV@Crescent.com -ExpandProperty directReports | Select-Object @{Name = 'DirectReports'; Expression = {$_.directReports.AdditionalProperties.mail}}

Veri Almayı Özelleştirme

Get-MgUser cmdlet'i alabileceğiniz veriler açısından esneklik sunar. -Property ve -Filter gibi parametreleri kullanarak çıktıyı özel ihtiyaçlarınıza göre uyarlayabilirsiniz.

Belirli Özellikleri Seçin:

Varsayılan olarak Get-MgUser, her kullanıcı için sınırlı sayıda özellik alır. Ancak ek özelliklere erişmeniz gereken durumlar olabilir. Neyse ki Get-MgUser, sonuçları mevcut tüm özellikleri içerecek şekilde genişletmenize olanak tanır. Her kullanıcıya ait tüm özellikleri almak için -Property parametresini kullanabilirsiniz. Örneğin:

Kullanıcının departmanını ve ofis konumunu almak için şunu kullanırsınız:


Get-MgUser -UserId Steve@Crescent.com -Property DisplayName, mail,department | Select-Object DisplayName, Mail, Department

Kullanıcı nesnesinin mevcut tüm özelliklerini almak için get-member cmdlet'ini kullanabilirsiniz:


Get-Mguser | Get-Member -MemberType Property

Bu komut, Microsoft 365 ortamınızdaki her kullanıcı için mevcut tüm özellikleri döndürür.

Kullanıcıları Filtreleme: -Filter parametresi, kullanıcıları departman veya iş unvanı gibi belirli kriterlere göre bulmanızı sağlar. Bu daha çok birden fazla kullanıcıyı listelemek için kullanılsa da, kullanıcının bilgilerinin bir kısmını bildiğinizde de kullanışlı olabilir. Örneğin, belirli bir departmandan bir kullanıcıyı bulmak için:


Get-MgUser -Filter "department eq 'Sales'" -All

Belirli Özellikleri Seçme: Varsayılan olarak sağlanan bilgilerin tümüne her zaman ihtiyacınız olmayabilir. Yalnızca Görünen ad ve posta gibi belirli özellikleri almak için Select-Object cmdlet'ini kullanın. Örneğin:


Get-MgUser | Select-Object DisplayName, Mail

Bu komut, çıktıyı yalnızca kullanıcının görünen adını ve e-posta adresini içerecek şekilde filtreler.

Get-MgUser cmdlet'inin komutları ve parametreleri yalnızca Azure Active Directory'den (Azure AD) çok çeşitli kullanıcı bilgilerinin alınmasını kolaylaştırmakla kalmaz, aynı zamanda cmdlet'in çeşitli kullanıcı yönetimi görevlerini gerçekleştirmedeki çok yönlülüğünün altını çizer. Bu seçenekleri anlayıp kullanarak Microsoft 365 ortamınızdaki kullanıcı verilerini verimli bir şekilde yönetebilir ve gerektiğinde en alakalı ve güncel bilgilere erişmenizi sağlayabilirsiniz.

Tüm Microsoft 365 Kullanıcılarının Listesini Alın

Microsoft Entra ID ve Microsoft 365 ortamınızdaki tüm kullanıcılar hakkında bilgi almak yöneticiler için kritik bir görevdir. Microsoft Graph PowerShell SDK'nın bir bileşeni olan Get-MgUser cmdlet'i, kapsamlı kullanıcı yönetimi için uyarlanmış bir dizi parametre sunarak bu süreci basitleştirir. Tüm kullanıcıların bilgilerini etkili bir şekilde almak için Get-MgUser'dan nasıl yararlanabileceğiniz aşağıda açıklanmıştır:

Tüm Kullanıcıları Geri Getirmek için Temel Komut

Varsayılan olarak Get-MgUser cmdlet'i yalnızca ilk 100 sonucu döndürür. Azure Active Directory'nizdeki her kullanıcıyı listelemek için Get-MgUser cmdlet'iyle -All parametresini kullanın. Bu komut tüm kullanıcıları sayfalara ayırarak her hesabı almanızı sağlar:


Get-MgUser -All

Bu komut, kiracınızdaki tüm kullanıcıların temel özellikleriyle birlikte bir listesini döndürür.

ID, DisplayName, Mail ve UserPrincipalName dahil olmak üzere daha ayrıntılı bir görünüm için çıktıyı biçimlendirebilirsiniz:


Get-MgUser -All | Format-List ID, DisplayName, Mail, UserPrincipalName

Kullanıcıları Özelliklere Göre Filtreleme ve Sıralama

Get-MgUser'ın temel filtreleme seçenekleri güçlü olsa da, daha gelişmiş filtreleme özelliklerine ihtiyaç duyduğunuz senaryolar da olabilir. Neyse ki Get-MgUser, sorgularınızı hassaslaştırmanıza yardımcı olacak ek parametreler sunuyor. -Filter parametresini eq (equals), ne (not equal), gt gibi operatörlerle uygulayabilirsiniz. (büyüktür), ge (büyük veya eşit), lt (küçüktür) ve le (küçük veya eşittir) ve kullanıcı listenizi belirli ölçütlere göre daraltmak için başlar..

Diyelim ki ait oldukları departman gibi belirli özelliklere dayalı olarak yalnızca belirli bir kullanıcı alt kümesini almak istiyorsunuz. Bunu başarmak için -Filter parametresini kullanabilirsiniz. Örneğin:


Get-MgUser -Filter "Department eq 'Marketing'"

Bu komut, departmanı “Pazarlama” olarak ayarlanan tüm kullanıcıları döndürecektir.

Kullanıcıların Azure Active Directory'den nasıl filtreleneceğine ilişkin bazı örnekler görelim:

Konuklar hariç tüm bulut kullanıcılarını listelemek için şu şekilde bir filtre uygulayabilirsiniz:


Get-MgUser -Filter "UserType eq 'Member'" -All

Şirket içi eşitlenen kullanıcıları almak ve bunları görünen adına göre sıralamak için:


Get-MgUser -Filter "OnPremisesSyncEnabled eq true" -All | Sort-Object DisplayName

Son 30 gün içinde oluşturulan tüm kullanıcıları filtreleyelim:


 Get-MgUser -Filter "CreatedDateTime ge $((Get-Date).AddDays(-30).ToString("s"))Z" -All

Birden fazla koşulu AND, OR mantıksal operatörleriyle birleştirebilirsiniz:


Get-MgUser -Filter "Country eq 'Canada' and Department eq 'Sales'"

Gelişmiş sorgularda AND operatörünün kullanımına ilişkin başka bir örnek:


Get-MgUser -Filter "(accountEnabled eq true) and (startswith(Department,'Sales'))"

Diğer karşılaştırma operatörleri StartsWith, EndsWith ve NE da desteklenmektedir:


Get-MgUser -Filter "startsWith(mail,'steve')" -All -ConsistencyLevel Eventual

Filter parametresini kullanmanın yanı sıra, Where-Object cmdlet'ini kullanıcı profillerini filtrelemek için de kullanabilirsiniz (bu arada, daha az verimlidir!):


Get-MgUser -All | Where-Object {$_.DisplayName -like "*sam*"}

Dizinden ihtiyaç duyduğunuz kullanıcı bilgilerinin tam alt kümesini çıkarmak için ayrıntılı ve spesifik aramalar oluşturabilirsiniz. Bu özellikle rapor oluşturmak, kullanıcı yönetimi görevlerini otomatikleştirmek veya diğer komut dosyaları ve hizmetlerle entegrasyon için kullanışlıdır.

Kullanıcı asıl adına göre filtreleme

Kullanıcıları UserPrincipalName'e göre filtrelemek istiyorsanız -Filter parametresini UserPrincipalName özelliğiyle birlikte kullanabilirsiniz. Örneğin:


Get-MgUser -Filter "UserPrincipalName eq 'john.doe@Crescent.com'"

Bu komut, kullanıcıyı belirtilen UserPrincipalName ile döndürecektir.

Kullanıcıları Hesap Durumuna Göre Filtreleme

Microsoft 365 ortamınızdaki kullanıcı hesaplarını özellikle hesap durumu açısından verimli bir şekilde yönetmek için Get-MgUser cmdlet'i güçlü filtreleme özellikleri sunar. Kullanıcı hesabı durumlarını filtrelemek ve almak için bu özellikleri nasıl kullanabileceğiniz aşağıda açıklanmıştır:

Hesap Durumunun Alınması:

-Property parametresini kullanarak AccountEnabled özelliğini ekleyerek başlayın. Bu eylem, bir hesabın etkin mi yoksa devre dışı mı olduğunu görmenizi sağlar.


Get-MgUser -all -Property Id, DisplayName, UserPrincipalName, AccountEnabled | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled

Hesap Durumuna Göre Filtreleme:

Kullanıcıları hesap durumlarına göre listelemeyi amaçladığınızda -Filter parametresi faydalıdır. Etkin veya devre dışı bırakılmış hesapları tanımlamak istiyorsanız, bu parametre accountEnabled özelliğiyle birleştiğinde bunu kolaylaştırır. Örneğin, yalnızca etkin kullanıcıları almak için:


Get-MgUser -Filter "accountEnabled eq true" -All

Engelli kullanıcıları listelemek için:


Get-MgUser -Filter "accountEnabled eq false"

Daha karmaşık sorgular için eq (equals), and, or ve startswith gibi operatörleri kullanmayı unutmayın. filtre sorgusunun çift tırnak içine ve dize değerlerinin tek tırnak içine alınmasını sağlamak.

Belirli bir kullanıcının hesap durumunu kontrol etmek için şunu kullanın:


Get-MgUser -UserId "Steve@Crescent.com" -Property DisplayName, UserPrincipalName, AccountEnabled | Select-Object DisplayName, UserPrincipalName, AccountEnabled

Azure AD'yi Get-MgUser'ın -Search parametresiyle arama

-Search parametresi, kullanıcıları anahtar kelimelere göre bulmak ve sorgularınızın özgüllüğünü artırmak için özellikle yararlı olabilir.

Daha ayrıntılı bir arama için -Search parametresi ConsistencyLevel eventual seçeneğiyle birlikte kullanılabilir. Bu yaklaşım, -Filter parametresi aracılığıyla doğrudan erişilemeyen belirli özelliklere göre kullanıcıları ararken faydalıdır.


 Get-MgUser -Search "DisplayName:sam" -ConsistencyLevel Eventual

Bu komutlardan ve parametrelerden yararlanarak kuruluşunuz içindeki kullanıcı hesabı durumları üzerinde kapsamlı bir anlayış ve kontrol elde edersiniz. Bu yetenek, rutin denetimler, uyumluluğun sağlanması ve kullanıcı erişiminin etkili bir şekilde yönetilmesi için gereklidir.

Yönetici Bilgilerinin Alınması

Microsoft 365 ortamınızdaki kullanıcılar için yönetici bilgileri edinmek üzere Get-MgUser cmdlet'inden yararlanarak "Yönetici" özelliğini genişletebilirsiniz. Bu cmdlet, organizasyonel yapılanma ve iletişim akışı analizi için önemli olabilecek ad, görünen ad ve e-posta adresi dahil olmak üzere kullanıcının yönetici ayrıntılarını almanızı sağlar. Bu cmdlet'i etkili bir şekilde nasıl kullanacağınız aşağıda açıklanmıştır:

Kullanıcıyı belirtmek için -UserId parametresini kullanın. Örneğin:


Get-MgUser -UserId "Steve@Crescent.com" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.displayName} }

Bu komut, -UserId ile belirtilen kullanıcıya atanan yönetici ayrıntılarını getirir.

Tüm Kullanıcılar için Yöneticileri Alma

Tüm kullanıcılar için yönetici bilgilerini elde etmek amacıyla komutları birbirine zincirleyebilirsiniz. Tüm kullanıcıları listelemek için Get-MgUser -All ile başlayın, ardından yönetici ayrıntılarını çıkarmak için sonuçları özel bir ifadeyle Select-Object'e aktarın. Örneğin:


Get-MgUser -All -ExpandProperty Manager | Select-Object Id, UserPrincipalName, @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.mail } }

Bu komut, tüm kullanıcıları yöneticilerinin e-postasıyla birlikte verimli bir şekilde listeleyerek PowerShell'in toplu veri işlemlerini yönetme gücünü gösterir.

Yukarıdaki komut dosyasını kullanarak kuruluşunuz içindeki yönetici-kullanıcı ilişkilerini ustalıkla yönetebilir ve analiz edebilir, böylece hem gözetimi hem de operasyonel verimliliği artırabilirsiniz.

Lisanslı ve Lisanssız Kullanıcıları Listeleme

Get-MgUser ayrıca Microsoft 365 ortamınızdaki kullanıcılar için lisans almanıza da olanak tanır. Örneğin, lisans atanmış kullanıcıların listesini almak istiyorsanız AssignedLicenses özelliğiyle filtreleme yapabilirsiniz. İşte bir örnek:


Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Property UserPrincipalName, DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses

Microsoft 365 ortamınızdaki lisanslı ve lisanssız kullanıcıları belirlemek ve yönetmek, yönetimin kritik bir yönüdür. Get-MgUser cmdlet'i, bu kullanıcı türlerini ayırt etmek için güçlü filtreleme yetenekleri sunar. Tüm lisanssız kullanıcıları etkili bir şekilde nasıl listeleyeceğiniz aşağıda açıklanmıştır:


Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Bu, herhangi bir lisans atanmamış kullanıcıları hedefler.

Belirli bir Kullanıcıya Lisans Atanmasını Alın:

Kullanıcıların belirli lisans ayrıntıları için, kapsamlı lisans atama bilgilerini getirmek amacıyla Get-MgUserLicenseDetail cmdlet'i kullanıcının kimliğiyle birlikte kullanılabilir.


Get-MgUserLicenseDetail -UserId "steve@Crescent.com"

Yöneticiler bu komutları kullanarak Microsoft 365 ortamlarındaki kullanıcı lisanslarını verimli bir şekilde yönetebilir, kaynakların uygun şekilde tahsis edilmesini ve uyumluluk gereksinimlerinin karşılanmasını sağlayabilir. Bu süreç denetime ve lisans satın alma ve optimizasyon stratejilerinin planlanmasına yardımcı olur.

Kullanıcının Oturum Açma Etkinliğinin Belirlenmesi

Bir kullanıcının oturum açma etkinliğini belirlemek, Microsoft 365 ortamınızı izlemenin ve güvenliğini sağlamanın kritik bir yönüdür. Microsoft Graph Beta API'si aracılığıyla erişilebilen SignInActivity özelliği, Azure AD'de son başarılı etkileşimli oturum açma işlemine ilişkin değerli bilgiler sağlar. PowerShell'i kullanarak bu özellikten nasıl yararlanabileceğiniz aşağıda açıklanmıştır:

Beta API'ye geçiş:

SignInActivity özelliği v1.0 API'sinde mevcut olmadığından Beta sürümüne geçiş yapılması gerekir. Bunu, PowerShell oturumunuzu Beta API'yi kullanacak şekilde ayarlayan ve SignInActivity dahil en son özelliklere ve niteliklere erişmenizi sağlayan "Select-MgProfile" cmdlet'ini kullanarak gerçekleştirebilirsiniz.

Oturum Açma Etkinliğini Alma

Get-MgUser Cmdlet'ini kullanma: Belirli bir kullanıcıya ilişkin SignInActivity'yi getirmek için -UserId parametresi kullanıcının Azure AD GUID'iyle birlikte sağlanmalıdır. Komut şuna benzer:


Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"

#Switch the Microsoft Graph profile to BETA
Select-MgProfile -Name "beta"

#Get the User
$User =  Get-MgUser -UserId "steve@crescent.com"

#Get the sign in Activity of the user
Get-MgUser -UserId $User.ID -Property SignInActivity | Select-Object -ExpandProperty SignInActivity

Ek Özelliklere Erişim:

SignInActivity özelliğini içeren bir kullanıcı nesnesini aldığınızda, oturum açma etkinliğine ek özellikler aracılığıyla erişilebilir. Bu yöntem, kullanıcı davranışına ilişkin daha derin bilgiler sağlar:


$UserSigninActivity = Get-MgUser -UserId $User.ID -Property SignInActivity,LastPasswordChangeDateTime

#Get the Signin Acvivity: LastSignInDateTime, LastNonInteractiveSignInDateTime
$UserSigninActivity.SignInActivity

#Get the past passwor change date
$UserSigninActivity.LastPasswordChangeDateTime

Son başarılı oturum açma zamanının ayrıntılarını veren LastSignInDateTime özelliğinin yalnızca Beta API aracılığıyla kullanılabildiğini unutmamak önemlidir. Bu özelliğin kullanılabilirliği, görüntülenmesiyle ilgili sorunun 3 Mart 2021'de çözülmesinden bu yana tutarlı olmuştur.

Tüm Kullanıcılar için Son Giriş Tarihini Al


Get-MgUser -All -Property Id, UserPrincipalName, DisplayName, SignInActivity | Select-Object Id, UserPrincipalName, DisplayName, @{Name = 'LastSignInDateTime'; Expression = { $_.SignInActivity.LastSignInDateTime }}, @{Name = 'LastNonInteractiveSignInDateTime'; Expression = { $_.SignInActivity.LastNonInteractiveSignInDateTime } } | Out-GridView -Title "Sign-in Logs"

Bu adımları izleyerek Microsoft 365 ortamınızdaki kullanıcı oturum açma etkinliklerini etkili bir şekilde izleyebilirsiniz. Bu süreç, yalnızca düzensiz oturum açma modellerinin belirlenmesini sağlayarak güvenliği artırmakla kalmaz, aynı zamanda doğru ve zamanında kullanıcı erişim verileri sağlayarak uyumluluk ve denetim görevlerine de yardımcı olur.

Kullanıcı Ayrıntılarını CSV'ye Aktarma

Kullanıcı bilgilerini bir CSV dosyasına aktarmak Export-CSV komutuyla basittir. Bu işlevsellik, raporlama veya denetim amaçları açısından çok değerlidir. Get-MgUser -All ile tüm kullanıcıları aldıktan sonra çıktıyı Export-CSV'ye aktarın:


Get-MgUser -All | Export-CSV -Path "AzureADUsers.csv"

Özel özellikleri veya uzantı verilerini dahil etmek için, dışa aktarmadan önce ek özellikleri belirtmek üzere $select OData sorgu seçeneğini kullanın:


Get-MgUser -All -Property displayName,mail,jobTitle | Select displayName,mail,jobTitle | Export-CSV -Path "CustomAzureADUsers.csv"

Bu adımlar, PowerShell'deki Get-MgUser cmdlet'ini kullanarak kullanıcı bilgilerini Azure AD'den verimli bir şekilde yönetme ve dışarı aktarma sürecini özetlemektedir. Yöneticiler, filtreleme ve dışarı aktarma seçeneklerinin yanı sıra -Tümü parametresini kullanarak Microsoft 365 ortamlarındaki kullanıcı hesaplarını etkili bir şekilde denetleyebilir.

Özellikle Microsoft 365 ortamınızdaki belirli kullanıcı gruplarıyla ilgilenirken, kullanıcı ayrıntılarını bir CSV dosyasına aktarma sürecini kolaylaştırmak için PowerShell betiklerini birleştirmek, veri yönetimi yeteneklerinizi etkili bir şekilde geliştirir. İşte bunu başarmak için yapılandırılmış bir yaklaşım:

  1. Hedefli Dışa Aktarma için Komut Dosyalarını Birleştirme:

    • Gerekli kullanıcı ayrıntılarını getirmek için Get-MgUser cmdlet'ini kullanarak başlayın. Bu cmdlet çok yönlüdür; bağlamı (temsil edilen veya uygulama) belirlemenize olanak tanır ve işlem için uygun izinlere sahip olmanızı sağlar.
    • Daha sonra, iş unvanları ve departmanlar gibi kriterlere göre kullanıcıları daraltmak için filtreler uygulayın. Bu adım, belirlediğiniz koşulları karşılayan kullanıcı gruplarına odaklanmak için çok önemlidir.
  2. CSV'ye Aktarma: İstenen kullanıcı verileri filtrelenip derlendikten sonra, son adım bu bilgilerin bir CSV dosyasına aktarılmasını içerir. CSV dosyasının kaydedilmesini istediğiniz yolu belirterek Export-CSV cmdlet'ini kullanın.

Get-MgUser -Filter "jobTitle eq 'Director' and department eq 'Operations'" -Property DisplayName, UserPrincipalName, JobTitle, Department, AssignedLicenses, LastPasswordChangeDateTime | Select-Object DisplayName, UserPrincipalName, JobTitle, Department, AssignedLicenses, LastPasswordChangeDateTime | Export-CSV -Path "FilteredUsers.csv" -NoTypeInformation

Bu komut, kullanıcıları iş unvanına ve departmana göre etkili bir şekilde filtreler, çıktıya dahil edilecek belirli özellikleri seçer ve verileri "FilterUsers.csv" adlı bir CSV dosyasına aktarır.

Tüm Kullanıcılar için Şifreyi Asla Sona Ermez İşaretini Alın ve CSV Dosyasına Aktarın

Parolanın tüm kullanıcılar için hiçbir zaman sona ermez işaretini almak ve bunu Microsoft Graph PowerShell kullanarak bir CSV dosyasına aktarmak için aşağıdaki betiği kullanabilirsiniz:

  1. Connect-MgGraph cmdlet'ini kullanarak Microsoft Graph'a bağlanın ve gerekli kapsamları sağlayın.
  2. Get-MgUser cmdlet'ini kullanarak tüm kullanıcıları alın ve DisplayName, UserPrincipalName ve PasswordPolicies özelliklerini seçin.
  3. Şifre politikaları DisablePasswordExpiration değerini içeren kullanıcıları filtreleyin.
  4. Filtrelenen kullanıcıları Export-Csv cmdlet'ini kullanarak bir CSV dosyasına aktarın.

#Connect to Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All"

#Get Password Never Expire flag for all users
$PasswordNeverExpire = Get-MgUser -All -Property DisplayName, UserPrincipalName, PasswordPolicies | Select-Object DisplayName, UserprincipalName, @{
    Name = "PasswordNeverExpires"; Expression = { $_.PasswordPolicies -contains "DisablePasswordExpiration"}
}

$PasswordNeverExpire
#Export the data to CSV file
$PasswordNeverExpire | Export-CSV -Path "C:\Temp\PasswordNeverExpire.csv" -NoTypeInformation

Bu yapılandırılmış yaklaşımı izleyerek Microsoft 365 ortamınızdan özel gereksinimlerinize uygun olarak ayrıntılı kullanıcı bilgilerini verimli bir şekilde yönetebilir ve dışarı aktarabilirsiniz. Bu süreç yalnızca kurumsal denetimlere yardımcı olmakla kalmaz, aynı zamanda proaktif kullanıcı yönetimi stratejilerini de destekler.

Get-MgUser ile sık karşılaşılan sorunları giderme

Get-MgUser güçlü bir araç olmasına rağmen, onu kullanırken bazı genel sorunlarla karşılaşabilirsiniz. Bu sorunlardan birkaçını ve olası çözümlerini inceleyelim.

İşlemi tamamlamak için yeterli ayrıcalık yok

“İşlemi tamamlamak için yeterli ayrıcalık yok” hata mesajı alırsanız Get-MgUser komutunu çalıştırmak için kullandığınız hesabın gerekli izinlere sahip olmadığı anlamına gelir. Bu sorunu çözmek için hesabın Microsoft 365 ortamınızda uygun yönetim ayrıcalıklarına sahip olduğundan emin olun. Yöneticiler, PowerShell ile ilişkili uygulama kaydı için Azure AD yönetim merkezinde API izinleri altında uygun izinleri (tüm kullanıcı profillerini okumak için User.Read.All gibi) vermelidir.

Get-MgUser bir cmdlet'in adı olarak tanınmıyor

“Get-MgUser, cmdlet adı olarak tanınmıyor” hata mesajıyla karşılaşırsanız Microsoft Graph için PowerShell modülü sisteminizde yüklü değil demektir. Modülü kurmak için “Install-Module Microsoft.Graph”ı çalıştırın. Daha fazla bilgiyi burada bulabilirsiniz: Microsoft Graph modülünü yükleyin.

Filtreleme ve Sorgu Sorunları

-Filter seçeneğini kullanırken Söz Dizimi hataları alıyorsanız veya sonuç alamıyorsanız OData sorgu söz diziminizin doğru olduğundan emin olun. Yaygın hatalar arasında dize değerlerinin etrafında tek tırnakların (') hatalı kullanımı veya desteklenmeyen filtre işlemlerinin kullanılması yer alır.

Mülk Seçimi Hataları

Özellikleri belirtmek için -Property seçeneğini kullanırken hatalar veya beklenmeyen sonuçlar mı alıyorsunuz? Talep ettiğiniz mülk adlarının doğru ve desteklendiğini doğrulayın. Tüm kullanıcı özellikleri varsayılan olarak mevcut değildir; bazıları erişim için belirli izinler veya ek sorgu parametreleri gerektirir.

Çözüm

Microsoft 365 ortamındaki kullanıcılar hakkında bilgi almanız gerektiğinde Get-MgUser PowerShell cmdlet'i başvuracağınız araçtır. Döndürülen verileri gereksinimlerinize göre uyarlayarak kullanıcı ayrıntılarını almak için hem temel hem de gelişmiş sorguları yürütmenize olanak tanır. Bu makale boyunca Get-MgUser cmdlet'inin kapsamlı yeteneklerini ve PowerShell aracılığıyla Microsoft Graph içindeki kullanıcı verilerini almadaki önemli rolünü inceledik. Microsoft Graph PowerShell Modülünün kurulumunun ilk adımlarından, kullanıcı bilgilerinin çıkarılması ve dışarı aktarılmasına yönelik gelişmiş tekniklere kadar, ortaya konulan stratejiler, cmdlet'in kullanıcı ayrıntılarına verimli bir şekilde erişme ve bunları yönetme konusundaki çok yönlülüğüne ışık tutar.

Bu PowerShell cmdlet'inin ayrıntılı kullanıcı analizini kolaylaştırma potansiyeli ve çeşitli yönetim ihtiyaçlarına uyarlanabilirliği, çağdaş BT ekosistemlerindeki öneminin altını çiziyor. Komutu ve çeşitli parametrelerini anlayarak verimliliğin gücünü açığa çıkarabilir ve idari görevlerinizi kolaylaştırabilirsiniz. Kullanıcıları filtrelemeniz, tüm özellikleri keşfetmeniz, sorunları gidermeniz veya işlevselliği genişletmeniz gerekiyorsa, Get-MgUser size yardımcı olur. O halde olasılıkları keşfetmeye başlayın ve Get-MgUser'dan en iyi şekilde bugün yararlanın!

Sıkça Sorulan Sorular:

PowerShell'deki Get-MgUser cmdlet'inin amacı nedir?

Get-MgUser PowerShell cmdlet'i Microsoft 365 ortamındaki kullanıcı bilgilerini alır. Tüm kullanıcıları listelemenize, belirli bir kullanıcı hakkında kapsamlı ayrıntılar edinmenize veya kullanıcıları departmanları veya iş unvanları gibi belirli niteliklere göre bulmanıza olanak tanır.

PowerShell aracılığıyla Microsoft Graph API'ye bağlanma adımları nelerdir?

PowerShell'de bir Graph API'yi çağırmak için Connect-MgGraph komutunu çalıştırarak oturum açın ve gerekli kapsamları belirtin. Bağlantı kurduktan sonra mevcut herhangi bir Graph API yöntemini çağırmakta özgürsünüz.

Get-MgUser'ı kullanmanın önkoşulları nelerdir?

Get-MgUser'ı kullanmak için Microsoft Graph PowerShell modülünün kurulu olması gerekir. PowerShell’de “Install-Module Microsoft.Graph” komutunu çalıştırarak kurulumu gerçekleştirebilirsiniz. Ayrıca Microsoft 365 ortamınızdaki kullanıcı bilgilerine erişmek için “Kullanıcı.Tümünü Oku” izinlerine sahip olmanız gerekir.

Get-MgUser'ı kullanarak belirli bir kullanıcının bilgilerini nasıl alırım?

Belirli bir kullanıcının bilgilerini almak için "-UserId" parametresini ve ardından kullanıcının kimliğini veya kullanıcı asıl adını (UPN) kullanabilirsiniz. Örneğin:

Get-MgUser -UserId "john.doe@crescent.com".

Get-MgUser tarafından döndürülen kullanıcı özelliklerini nasıl filtreleyebilirim?

Almak istediğiniz belirli özellikleri belirtmek için "-Property" parametresini kullanabilir ve ardından Select cmdlet'ine aktarabilirsiniz. Örneğin:

Get-MgUser -UserId "steve@crescent.com" -Property ID, Mail | Select ID, Mail

Kullanıcıları belirli bir özellik değerine göre almak mümkün mü?

Evet, belirli bir özellik değerine göre kullanıcıları almak için “-Filter” parametresini kullanabilirsiniz. Örneğin, belirli bir departmanın kullanıcılarını almak için:

Get-MgUser -Filter "Department eq 'Marketing'"

Get-MgUser tarafından alınan kullanıcı bilgilerini bir dosyaya nasıl aktarabilirim?

“Export-Csv” cmdlet'ini kullanarak kullanıcı bilgilerini bir dosyaya aktarabilirsiniz. Örneğin:

Get-MgUser -Filter "jobTitle eq 'Director'" | Export-Csv -Path "C:\Temp\Directors.csv" -NoTypeInformation

Get-MgUser'ı kullanarak kuruluşumdaki tüm kullanıcıların listesini nasıl alırım?

Get-MgUser kullanarak kuruluşunuzdaki tüm kullanıcılar hakkında bilgi almak için -All parametresini kullanabilirsiniz. Örneğin: Get-MgUser -All

Get-MgUser'ı kullanarak belirli bir kullanıcıyı nasıl arayabilirim?

Get-MgUser kullanarak belirli bir kullanıcıyı aramak için -Search parametresini kullanarak bir arama sorgusu belirtebilirsiniz. Örneğin, görünen adı "sam" içeren tüm kullanıcıları aramak için aşağıdaki komutu kullanabilirsiniz:

Get-MgUser -All -Search "DisplayName:sam" -ConsistencyLevel eventual

İlgili makaleler