Jak používat Get-MgUser v PowerShellu

Rutina Get-MgUser v prostředí Microsoft Graph PowerShell načte všechny podrobnosti o uživateli v ID Microsoft Entra. Můžete získat všechny uživatele Microsoft 365 nebo konkrétní uživatele z vaší organizace. I když můžete získat všechny uživatele v centru pro správu Microsoft Entra nebo v centru pro správu Microsoft 365, s PowerShell můžete vždy udělat více a být přesní. V tomto článku se dozvíte, jak používat rutinu Get-MgUser v prostředí PowerShell.

Než začnete

Než budete pokračovat, je důležité nainstalovat a připojit se k prostředí Microsoft Graph PowerShell. V opačném případě nebude rutina Get-MgUser fungovat.

Doporučené čtení:Jak přidat nebo odebrat připnuté složky pro rychlý přístup pomocí PowerShell a GPO

Nainstalujte Microsoft Graph PowerShell

Spusťte PowerShell jako správce a nainstalujte modul Microsoft Graph PowerShell.

Install-Module Microsoft.Graph -Force

Důležité:Před spuštěním rutiny nebo skriptu vždy aktualizujte na nejnovější verzi modulu Microsoft Graph PowerShell, abyste předešli chybám a nesprávným výsledkům.

Připojte se k Microsoft Graph PowerShell

Musíte se připojit k Microsoft Graph PowerShell se správnými oprávněními. Pokud tak neučiníte, nebudete moci načíst uživatelské výsledky pomocí rutiny Get-MgUser.

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

Chcete se připojit bez interakce uživatele, protože chcete, aby se skript spouštěl automaticky? Nastavte jej pomocí ověřování na základě certifikátu nebo tajného klíče klienta. Více se dočtete v článku Připojení k Microsoft Graph PowerShell.

Získejte informace o uživateli

Začněme nejprve základy, a to získání uživatelských informací.

Získejte informace o jednom uživateli

Chcete-li získat informace o uživateli, použijte –UserIdparametr a připojte ID uživatele.

Get-MgUser -UserId "944d57a0-0d24-4d55-ac5b-e9b741be9031"

K získání informací o uživateli můžete také použít UserPrincipalName.

Get-MgUser -UserId "[email protected]"

PřidejteFormat-Listcmdlet pro získání seznamu vlastností.

Get-MgUser -UserId "[email protected]" | Format-List

Získejte informace o všech uživatelích

Spusťte rutinu Get-MgUser, včetně-Všeparametr pro načtení všech uživatelů.

Poznámka:Vždy používejte-Všeparametr pro získání všech výsledků. V opačném případě se zobrazí pouze 100 položek.

Get-MgUser -All

Abychom spočítali všechny uživatele, přidámeMěřit-objektcmdlet k příkazu.

Get-MgUser -All | Measure-Object | Select-Object -ExpandProperty Count

Získejte stav uživatelského účtu

Abychom získali stav uživatelského účtu, musíme přidat-Vlastnictvíparametr, včetně vlastnosti AccountEnabled. V opačném případě bude hodnota AccountEnabled prázdná.

Získejte stav jednoho uživatelského účtu

Získejte stav účtu jednoho uživatele.

Get-MgUser -UserId "[email protected]" -Property Id, DisplayName, UserPrincipalName, AccountEnabled | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled

Získejte stav účtu všech uživatelů

Získejte všechny stavy uživatelských účtů.

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

Vždy můžete přidat-Filtra načíst pouze povolené účty.

Get-MgUser -All -Filter "accountEnabled eq true" -Property Id, DisplayName, UserPrincipalName, AccountEnabled | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled

Nebo filtrujte pouze zakázané uživatelské účty.

Get-MgUser -All -Filter "accountEnabled ne true" -ConsistencyLevel eventual -CountVariable CountVar -Property Id, DisplayName, UserPrincipalName, AccountEnabled | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled

Chcete-li zjistit, kterou vlastnost můžete přidat, abyste získali informace o vlastnostech uživatele z rutiny Get-MgUser, použijteTabulka dokumentů společnosti Microsoft.

Získejte všechny uživatele cloudu

Pokud máte hybridní prostředí, uživatelé se synchronizují z místního AD do Microsoft Entra ID. Místní AD je autorita vaší domény a měli byste tam vytvořit uživatele. V organizaci však mohou být uživatelé, kteří jsou přímo vytvořeni v cloudu.

Získejte všechny uživatele cloudu včetně hostů

Filtrujme pouze uživatele cloudu. To zahrnuje účty hostů.

Poznámka:Použijte-Filtrparametr sto jeoperátor. Tento požadavek není ve výchozím nastavení podporován, protožeto jeoperátor je podporován pouze v pokročilých dotazech. Proto musíte přidatÚroveň konzistencezáhlaví nastavte na eventual a použijteCountVarřetězec dotazu.

Get-MgUser -All -Filter "OnPremisesSyncEnabled ne true" -ConsistencyLevel eventual -CountVariable CountVar

Získejte všechny uživatele cloudu kromě hostů

Nyní vyfiltrujme pouze uživatele cloudu bez účtů hosta.

Get-MgUser -All -Filter "OnPremisesSyncEnabled ne true and UserType eq 'Member'" -ConsistencyLevel eventual -CountVariable CountVar

Získejte všechny uživatele typu host v cloudu

Filtrujte pouze na hostující uživatele v cloudu.

Get-MgUser -All -Filter "OnPremisesSyncEnabled ne true and UserType eq 'Guest'" -ConsistencyLevel eventual -CountVariable CountVar

Získejte licencované uživatele

Ne všichni uživatelé mají licenci. V tenantovi jsou uživatelé s licencí i bez ní. Abychom přesně věděli, které uživatelské účty mají přidělenou licenci a které ne, můžeme podle toho filtrovat.

Získejte všechny licencované uživatele

Filtrujte pouze na licencované uživatele.

Get-MgUser -All -Filter "assignedLicenses/`$count ne 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable Records

Získejte všechny nelicencované uživatele

Filtrujte pouze na nelicencované uživatele.

Get-MgUser -All -Filter "assignedLicenses/`$count eq 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable Records

Získejte všechny licencované a blokované uživatele

Uživatele můžete zablokovat a stále mají licenci. Pojďme získat všechny blokované uživatele s licencí.

Get-MgUser -All -Filter "assignedLicenses/`$count ne 0 and accountEnabled eq false" -ConsistencyLevel eventual -CountVariable Records

Získejte místní synchronizované uživatele

Získejte pouze místní uživatele, kteří jsou synchronizováni do cloudu, a seřaďte je podle zobrazovaného názvu.

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

Získejte správce uživatele

Ne všichni uživatelé mají správce, ale někteří ano. Rádi poznáme manažera uživatele nebo všech uživatelů.

Získejte správce jednoho uživatele

Pojďme zkontrolovat, kdo je správcem jednoho uživatele.

Pokud spustíte níže uvedenou rutinu k načtení správce jednoho uživatele, správce se nezobrazí.

Get-MgUser -UserId "[email protected]" | Select-Object DisplayName, Manager

Uvidíte, že zobrazuje hodnotu Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObject.

DisplayName   Manager
-----------   -------
Amanda Morgan Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObject

Je to proto, že musíte přidat-Rozbalte vlastnostparametr.

Get-MgUser -UserId "[email protected]" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.mail } }

Dalším způsobem je uložit vlastnost Manager do proměnné a poté ji zobrazit.

$user = Get-MgUser -UserId "[email protected]" -ExpandProperty Manager
$user.Manager.AdditionalProperties.mail

Získejte správce všech uživatelů

Abychom věděli, který správce je přiřazen kterému uživateli, můžeme získat seznam všech uživatelů a jejich správce.

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

Získejte uživatele, kteří začínají se zobrazovaným jménem

Můžeme přidatzačínáSa načte všechny výsledky, které začínají zobrazovaným názvem.

Get-MgUser -All -Filter "startsWith(DisplayName,'Amanda')"

Místo slova můžete také přidat písmeno.

Get-MgUser -All -Filter "startsWith(DisplayName,'A')"

Získejte uživatele, kteří končí s e-mailovou adresou

Přidejtekončísoperátora a načte všechny uživatele, kteří končí konkrétní e-mailovou adresou, a seřadí je podle zobrazovaného jména.

Get-MgUser -All -Filter "endsWith(mail,'exoip.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVar

Vyhledejte obě domény, které končí konkrétní poštovní adresou.

Get-MgUser -All -Filter "endsWith(mail,'exoip.com') or endsWith(mail,'tajran.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVar

Získejte uživatele, kteří končí hlavním jménem uživatele

Přidejtekončísoperátor a načte všechny uživatele, kteří končí konkrétním UserPrincipalName, a seřadí je podle zobrazovaného jména.

Get-MgUser -All -Filter "endsWith(userprincipalname,'exoip.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVar

Získejte aktivitu přihlašování uživatelů

Je dobré filtrovat, kdy se uživatel naposledy úspěšně přihlásil. Můžeme tedy pochopit, zda je účet používán nebo ne.

Získejte aktivitu přihlášení jednoho uživatele

Zkontrolujte aktivitu přihlášení jednoho uživatele.

Get-MgUser -UserId "944d57a0-0d24-4d55-ac5b-e9b741be9031" -Property SignInActivity | Select-Object -ExpandProperty SignInActivity

Pokud chcete použít UserPrincipalName pro-UserIdparametr, zobrazí se chyba. To proto, že ne všechny vlastnosti to akceptují.

Get-MgUser_Get: Get By Key only supports UserId and the key has to be a valid Guid

Status: 400 (BadRequest)
ErrorCode: 400

Místo toho můžete načíst UserId pomocí druhé rutiny Get-MgUser a přidat jej do první rutiny Get-MgUser.

Get-MgUser -UserId (Get-MgUser -UserId "[email protected]").Id -Property SignInActivity | Select-Object -ExpandProperty SignInActivity | fl

Objeví se výsledek.

LastNonInteractiveSignInDateTime  : 20/01/2024 05:23:30
LastNonInteractiveSignInRequestId : 27e83e67-4c1c-4f74-babb-a55791680900
LastSignInDateTime                : 19/01/2024 11:31:20
LastSignInRequestId               : 6f659c53-cf13-4b7d-9fe5-93c6f9a52100
LastSuccessfulSignInDateTime      : 20/01/2024 05:23:30
LastSuccessfulSignInRequestId     : 27e83e67-4c1c-4f74-babb-a55791680900
AdditionalProperties              : {}

Získejte aktivitu přihlášení všech uživatelů

Získejte datum a čas posledního úspěšného přihlášení všech uživatelů a odešlete výstup do interaktivní tabulky v samostatném okně sOut-GridViewcmdlet.

Get-MgUser -All -Property Id, UserPrincipalName, DisplayName, SignInActivity | Select-Object Id, UserPrincipalName, DisplayName, @{Name = 'LastSuccessfulSignInDateTime'; Expression = { $_.SignInActivity.LastSuccessfulSignInDateTime } } | Out-GridView -Title "Last successful sign-in date"

Získejte uživatele s názvem společnosti

V organizaci můžete mít různé názvy společností. Pro zúžení výsledků je dobré vědět, který uživatel patří ke které společnosti, nebo filtrovat na konkrétní společnost.

Získejte název společnosti jednoho uživatele

Získejte název společnosti jednoho uživatele.

Get-MgUser -UserId "[email protected]" -Property DisplayName, UserPrincipalName, CompanyName | Select-Object DisplayName, UserPrincipalName, CompanyName

Získejte název společnosti všech uživatelů

Získejte všechny uživatelské účty včetně názvu společnosti.

Get-MgUser -All -Property DisplayName, UserPrincipalName, CompanyName | Select-Object DisplayName, UserPrincipalName, CompanyName

Přidejte-Filtrparametr azačínáSoperátor k načtení všech výsledků, které začínají konkrétním názvem společnosti.

Get-MgUser -All -Property DisplayName, UserPrincipalName, CompanyName -ConsistencyLevel eventual -Count userCount -Filter "startsWith(CompanyName, 'Exo')" | Select-Object DisplayName, UserPrincipalName, CompanyName

Můžete použít-Vyhledáváníparametr pro vyhledání společnosti a získání výsledků.

Get-MgUser -All -Search "CompanyName:Exoip" -ConsistencyLevel eventual

Získejte uživatele s povoleným názvem společnosti a účtem

Přidejte-Vyhledáváníparametr k nalezení názvu společnosti a-Filtrparametr pro načtení pouze povolených účtů.

Get-MgUser -All -Filter "accountEnabled eq true" -Search "CompanyName:Exoip" -ConsistencyLevel eventual

Příklady skriptů PowerShell Get-MgUser

Vynikající způsob, jak porozumět tomu, jak přidat rutinu Get-MgUser do skriptů PowerShellu, je projít si příklady skriptů PowerShell:

  • Vytvořte uživatele Microsoft Entra ID z CSV pomocí PowerShellu
  • Exportujte uživatele Microsoft Entra ID do CSV pomocí PowerShellu
  • Blokovat přihlašování ze sdílených poštovních schránek
  • Vynucení odhlášení uživatelů v Microsoft 365 pomocí PowerShellu
  • Jak odebrat oprávnění z aplikací v Microsoft Entra
  • Exportovat přehled zakázaných uživatelů Microsoft 365
  • Exportujte sestavu neaktivních uživatelů Microsoft 365

Závěr

Naučili jste se používat Get-MgUser v PowerShellu. Rutina Get-MgUser je vynikající rutina pro načtení uživatelů z Microsoft Entra ID a Microsoft 365. Použijte specifické parametry nebo je zkombinujte a filtrujte výsledky hledání podle toho, jak chcete, aby se výsledky zobrazily.

Líbil se vám tento článek? Také by se vám mohlo líbit Jak exportovat zásady podmíněného přístupu. Nezapomeňte nás sledovat a sdílet tento článek.

Related Posts