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 -ForceDů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-ListZí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 -AllAbychom spočítali všechny uživatele, přidámeMěřit-objektcmdlet k příkazu.
Get-MgUser -All | Measure-Object | Select-Object -ExpandProperty CountZí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, AccountEnabledZí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, AccountEnabledVž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, AccountEnabledNebo 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, AccountEnabledChcete-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 CountVarZí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 CountVarZí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 CountVarZí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 RecordsZí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 RecordsZí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 RecordsZí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 DisplayNameZí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, ManagerUvidíte, že zobrazuje hodnotu Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObject.
DisplayName Manager
----------- -------
Amanda Morgan Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObjectJe 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.mailZí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 CountVarVyhledejte 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 CountVarZí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 CountVarZí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 SignInActivityPokud 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: 400Mí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 | flObjeví 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, CompanyNameZí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, CompanyNamePř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, CompanyNameMůž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 eventualZí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 eventualPří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.













