A Get-MgUser használata a Microsoft Graph PowerShell-lel
A Microsoft Graph PowerShell Get-MgUser parancsmagja lehetővé teszi, hogy a parancssorból információkat találjon egy felhasználóról, felhasználócsoportról vagy a szervezet összes felhasználójáról. Ezenkívül több információt tesz közzé a felhasználókról, mint amennyit általában a webalapú felügyeleti portálokon, például az Azure AD felügyeleti központban vagy a Microsoft 365 felügyeleti központban talál.
Ebben az oktatóanyagban végigvezetem, hogyan használhatja a Get-MgUser parancsmagot a Microsoft Graph PowerShellben, hogy hasznos információkat találjon és exportáljon a felhasználókról. Kitérek arra is, hogyan szűrheti és módosíthatja a keresési eredményeket, hogy megtalálja a szükséges információkat.
Tartalom
- Miért érdemes a Get-MgUser parancsmagot használni?
- Előfeltételek
- A Get-MgUser futtatásához szükséges engedélyek megkeresése
- Információk keresése egyetlen felhasználóról
- Konkrét tulajdonságok kiválasztása
- Keresse meg a beágyazott tulajdonságokat a Microsoft Graph referenciadokumentációjával
- Keresse meg a rejtett információkat az -ExpandProperty vagy -Expand segítségével
- A Get-MgUser keresési eredményeinek szűrése
- Keressen felhasználókat a keresési paraméterrel
- Keresési és szűrési lehetőségek kombinálása
Miért érdemes a Get-MgUser parancsmagot használni?
A Get-MgUser az előnyben részesített parancs, amellyel a felhasználókkal kapcsolatos információkat kereshet a parancssori felületen keresztül. A parancs a Microsoft Graph PowerShell SDK-ban található, amely a PowerShell-modulok, például az MSOnline és az AzureAD utódja.
Számos különböző paraméter használható a Get-MgUserrel, például:
-ExpandProperty
-Tulajdonság
-Szűrő
-Keresés
-Kihagyás
- Rendezés
-Felső
-Konszisztenciaszint
-Oldalméret
-Mind
-Számváltozó
Előfeltételek
A Get-MgUser parancs használatához biztosítania kell a következőket:
- PowerShell 5.1 vagy újabb verziót futtat
- A .NET Framework 4.7.2 vagy újabb verziója telepítve van
- Telepítette a Microsoft Graph PowerShell SDK-t
A Get-MgUser futtatásához szükséges engedélyek megkeresése
Mielőtt csatlakozna a Microsoft Graphhoz, győződjön meg arról, hogy a -scope paramétert a megfelelő jogosultságokkal használja a parancs futtatásához.
Ha meg szeretné találni az engedélyek minimális szintjét, és információkat találhat a felhasználóról, használja a Find-MgGraphCommand parancsmagot a Get-MgUser parancsmag engedélyeinek megkereséséhez.
Find-MgGraphCommand -command Get-MgUser |`
Select -First 1 -ExpandProperty PermissionsA parancs futtatásához nem kell csatlakoznia a szervezetéhez, azonban telepítenie kell a Microsoft Graph PowerShell-t. Itt a várt kimenet, bár a leírásból nem derül ki, az engedély neve alapján pontosan lehet feltételezni.
A fenti kimenet alapján a parancsunk futtatásához a következő paranccsal kapcsolódhatunk a Microsoft Graphhoz a legkevesebb jogosultsággal.
Connect-MgGraph -Scopes "User.Read.All"Információk keresése egyetlen felhasználóról
Egyetlen felhasználó információinak megkereséséhez futtassa a következő parancsot, amely megjeleníti az összes felhasználó megjelenített nevét, felhasználónevét és azonosítóját. Innen átmásolhatja a célfelhasználó azonosítóját, hogy lehetővé tegye a felhasználó közvetlen megcélzását.
Get-MgUser | select DisplayName, UserPrincipalName, IdMiután kimásolta a felhasználói azonosítót, helyezze a következő parancsba a felhasználói fiók összes információjának megjelenítéséhez.
Get-MgUser -UserId 5965d511-e639-4a28-bfbb-b2cb08e83907 | flHa már ismeri a felhasználó felhasználónevét, akkor ugyanazt az eredményt lecserélheti a felhasználónévre.
Get-MgUser -UserId [email | flKonkrét tulajdonságok kiválasztása
Ha egy adott felhasználót céloz meg, és megadja a „formátumlista” paramétert, akkor információs oldalakat kap, ahol a legtöbb üres vagy irreleváns. A select paraméterrel kiválaszthatjuk a megjelenített attribútumokat.
Például, hogy csak a megjelenített nevet, felhasználónevet és felhasználói azonosítót jelenítse meg, használhatjuk a következő parancsot.
Get-MgUser -UserId [email | `
select DisplayName, UserprincipalName, IdA Format-Line paraméterrel rendelkező PIPE segítségével azonosítsa, mely attribútumokról szeretne jelentést készíteni, és mentse el a parancsokat egy későbbi időpontra.
Előfordulhat, hogy a megtekinteni kívánt tulajdonságok egy része nem látható azonnal, ez azért van, mert be vannak ágyazva. Például, ha meg szeretné tekinteni, hogy egy felhasználó postafiókjában engedélyezve van-e az automatikus válaszadás, akkor futtassa a következőket.
Get-MgUser -UserId [email -Property MailboxSettings | `
Select @{Name = 'AutomaticReply'; Expression = {$_.MailboxSettings.AutomaticRepliesSetting.status}}Néha nem könnyű megtalálni ezeket a beállításokat, azonban a Microsoft Graph dokumentációja a legjobb kiindulópont, amikor konkrét információkat kell kinyernie.
Keresse meg a beágyazott tulajdonságokat a Microsoft Graph referenciadokumentációjával
A Get-MgUser parancsmag meghívásakor sok tulajdonság beágyazott. Ez a Microsoft Graph többi parancsmagjára is igaz, és ezeknek a tulajdonságoknak a megtalálásához a Microsoft Learn Graph API referenciadokumentációja a legjobb hely.
A fenti példában, ahol megtaláltam egy postafiók automatikus válaszbeállításait, ezt a következőképpen nézhetjük meg a dokumentációban.
1. Kezdje azzal, hogy felkeresi a https://learn.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#properties oldalt, ahol az összes tulajdonság, az érték típusa és egy az egyes tulajdonságok magyarázata.
2. Keresse meg a kezdeti tulajdonságot, és válassza ki a típus mezőt, ha rákattintható. Itt a postafiókbeállítások lehetőséget választottam.
3. Látni fog egy hasonló oldalt, amely megjeleníti a mailboxSettings attribútum összes tulajdonságát. Itt az automaticRepliesSetting beállítást választottam.
4. Láthatjuk, hogy ha egy felhasználó postafiókjában szeretnénk megtekinteni az automatikus válasz beállításainak állapotát, akkor szükségünk van a status attribútumra. Amely a MailboxSettings > AutomaticReplySettings menüpontban van beágyazva.
Tehát tudjuk, hogy a beállítási értékünk a MailboxSettings.AutomaticRepliesSetting.status-ban található, azonban ezt kifejezésként szerepeltetni kell a parancsunkban. Ha ezt nem teszi meg, a következőhöz hasonló hibaüzenet jelenik meg:
Kiválasztás : Hiányzik a kifejezés kötelező bejegyzése.
Tehát, hogy ez működjön, miután definiáltuk a -property paramétert a parancsunkban, a PIPE lehetőséget használhatjuk, majd a select paranccsal kinyerhetjük az értéket, az alábbiak szerint:
Kiválasztás @{Name='Automatikus válasz'; Kifejezés={$_.MailboxSettings.AutomaticRepliesSetting.status}}
AutomaticReply
————-
letiltva
Keresse meg a rejtett információkat az -ExpandProperty vagy -Expand segítségével
Ha a format-list parancsot használta egy felhasználó összes felhasználói attribútumának megtekintéséhez, akkor azt tapasztalhatta, hogy sok üres. Nem tudom, miért van ez így, de egyesek biztosan tartalmazhatnak információkat. Az Expand vagy az ExpandProperty paraméterekkel olyan információkat jeleníthet meg, amelyek nem voltak azonnal láthatók.
Egy másik szokatlan furcsaság, hogy nem minden parancs fogadja el a felhasználói felhasználónevet a Get-MgUser után, ezért az oktatóprogram elején kiemeltem, hogy a UserPricincipalName vagy az Id elemet a parancsba elemezheti. Ez igaz a következő parancsra, amelyet megmutatok.
Például egy felhasználó legutóbbi bejelentkezési adatainak megjelenítéséhez tegye a következőket.
get-mguser -userid (get-mguser -UserId "[email ").id `
-property signinactivity | Select-Object -expandproperty signinactivityA fenti parancsban láthatja, hogy a felhasználó azonosítójának ismerete nélkül kiválasztottuk az Id tulajdonságot, és a parancsunkon belül kétszer hívtuk a felhasználót. Ha nem adja meg az azonosítót a parancsban, a következőhöz hasonló hibaüzenetet kap:
get-mguser : {“@odata.context”:”http://reportingservice.activedirectory.windowsazure.com/$metadata#Edm.String”,”value”:” A Get By Key csak a UserId-t támogatja, és a kulcsnak érvényes útmutatónak kell lennie”}
Ennek megfelelően a fenti parancs használatához a felhasználói azonosítóval futtassa a következőt.
get-mguser -userid 841e1f59-a0e2-4062-896a-8c84c36f1811 `
-property signinactivity | Select-Object -expandproperty signinactivityLátni fogja, hogy nem minden attribútum jelenik meg ugyanabban a formátumban. Ez azt jelenti, hogy az információkat nem mindig lehet azonos módon kinyerni. Például, ha egy adott felhasználó kezelőjének nevét szeretnénk megtekinteni, akkor a következő parancsot futtathatjuk.
Get-MgUser -UserId [email -ExpandProperty manager | `
Select @{Name = 'Manager'; Expression = {$_.Manager.AdditionalProperties.displayName}}
A Get-MgUser keresési eredményeinek szűrése
A -Filter paraméterrel szűrheti a keresési eredményeket a felhasználók számára. A szűrőparaméter használatakor csak néhány logikai operátor használható, ezek a következők:
- eq Az attribútum egyenlő:
- le Az attribútum kisebb vagy egyenlő, mint (ábécé sorrendben)
- gt Az attribútum nagyobb vagy egyenlő, mint (ábécé sorrendben)
- és Az 1. attribútum egyenlő, a 2. attribútum pedig egyenlő
- vagy Az 1. attribútum egyenlő vagy a 2. attribútum egyenlő
- startswith A tulajdonság ezzel kezdődik
- endswith A tulajdonság így végződik
Az alábbiakban bemutatok egy példát arra, hogyan kell használni az egyes logikai operátorokat a parancsaiban.
Kezdésként használhatjuk az eq operátort, hogy olyan felhasználókat keressünk, akiknek attribútumai megfelelnek egy adott értéknek. Itt szűrjük azokat a felhasználókat, akiknek a megjelenített neve megegyezik a „John Smith” kifejezéssel.
get-mguser -filter "DisplayName eq 'John Smith'"A fentihez hasonló formátumban használhatjuk a le vagy a ge operátort, hogy megkeressük azokat a felhasználókat, akiknek megjelenített neve a „G” betűnél kisebb vagy nagyobb betűvel kezdődik az ábécében. .
#Filter users whos name begins with a letter before G in the alphabet
get-mguser -filter "DisplayName le 'g'"
#Filter users whos name begins with a letter after G in the alphabet
get-mguser -filter "DisplayName ge 'g'"A starts with operátor segítségével megtalálhatja a bérlő összes felhasználóját, akinek a megjelenített neve D betűvel kezdődik.
get-mguser -filter "startswith(Displayname, 'D')"A fentiekhez hasonlóan a felhasználó végződése operátorral megkeresheti azokat a felhasználókat, akiknek elsődleges e-mail címe egy adott domain névvel végződik. Ehhez a parancshoz fontos megadnunk a -CountVariable és -ConsistencyLevel paramétereket.
Get-MgUser -CountVariable CountVar -Filter "endsWith(mail,'it-career.online')" `
-Sort "displayName" -ConsistencyLevel eventualA fenti parancsok most már párosíthatók a és operátorral, hogy finomhangolhassuk az eredményeket. Például megkeresheti azokat a felhasználókat, akiknek az it-career.online fő domainje és a megjelenített neve D betűvel kezdődik.
Get-MgUser -CountVariable CountVar -Filter `
"endsWith(mail,'it-career.online') and startswith(Displayname, 'D')" `
-Sort "displayName" -ConsistencyLevel eventualA fentiekhez hasonlóan a vagy operátort is ugyanúgy használhatjuk eredményeink szélesítésére. Itt olyan felhasználókat keresünk, akiknek elsődleges e-mail címe „it-career.online” vagy „it-career.info” végződik.
Get-MgUser -CountVariable CountVar -Filter `
"endsWith(mail,'it-career.online') or endsWith(mail,'it-career.info')" `
-Sort "displayName" -ConsistencyLevel eventualKeressen felhasználókat a keresési paraméterrel
A szűrő opcióhoz hasonlóan a -search paramétert is használhatjuk felhasználói keresési találataink finomhangolására. Fentebb említettem a -ConsistencyLevel opció használatáról és az esetleges beállításról, ezt a következő parancsokban kell megtennünk.
Az alábbiakban I betűvel kezdődő megjelenített névvel rendelkező felhasználókat keresünk.
Get-MgUser -ConsistencyLevel eventual -Search '"DisplayName:I"'Nem világos, hogy pontosan működik a keresési paraméter, azon kívül, hogy például kifejezések alapján keres. Ha a megjelenített név „John Smith”, használhatom a keresési kifejezéseket:
- ""DisplayName:J""
- ""DisplayName:János""
- ""DisplayName:Smith""
- ""DisplayName:S""
Azonban nem talál olyan értékeket, amelyek a szó közepére vagy végére tartozhatnak. Például Kovács János nem jelenik meg a keresési eredményeim között, ha a következőket használom:
- ""DisplayName:h""
- ""DisplayName:th""
- ""DisplayName:hn""
Keresési és szűrési lehetőségek kombinálása
A Get-MgUser parancsmag használatakor a keresési és szűrési paraméterek nem zárják ki egymást, bár vitathatatlanul a szolgáltatások/dokumentáció hiánya miatt nem hoz sok előnyt a kettő kombinálása, bárhogyan is.
Ha például az it-career.online domain összes felhasználójára szeretne szűrni, és az eredményeket egy adott részleg felhasználóira szeretné keresni, futtassa a következőt.
Get-MgUser -Filter "endsWith(mail,'it-career.online')" `
-Search 'Department:Marketing' -ConsistencyLevel eventual


