Weboldal keresés

Microsoft Graph PowerShell SDK: Felhasználói és csoportműveletek


Gyakori feladatok áthelyezése a grafikonra

A sorozat első részében elmagyaráztam, hogyan egyszerűsíti le a Microsoft Graph PowerShell SDK a Microsoft Graph API használatát azáltal, hogy az API-hívásokat ismertebb PowerShell-parancsmagokra cseréli. Azt is megmutattam, hogyan kell telepíteni az SDK-t és csatlakozni az első parancsmagok futtatásához.

Az adminisztrátoroknak leggyakrabban elvégzendő tevékenységek közé tartozik a felhasználók és a csoportok kezelése. Ez a cikk részletesebben foglalkozik az SDK használatával a felhasználók és csoportok grafikonon keresztüli kezeléséhez szükséges gyakori napi feladatok elvégzésére.

Egy hely a Microsoft 365 kezeléséhez (olyan…)

A Microsoft Graph API és az SDK egyik legnagyobb előnye, hogy a Microsoft 365 számos aspektusát egyetlen helyről kezelheti. Ez apróságnak tűnhet, de amikor elkezdi automatizálni az összetettebb forgatókönyveket, nehézkes nyomon követni a szükséges modulokat, és időbe telik annak biztosítása, hogy a környezet felkészült legyen. Arról nem is beszélve, hogy az összes különböző modult frissíteni kell.

Az egyik furcsa kihagyás az Exchange Online kezeléséhez szükséges végpontok hiánya. Míg a postafiókadatok a Graphon keresztül érhetők el, a legtöbb Exchange Online kezelési feladatot (pl. címlisták, levelezési szabályok) továbbra is az Exchange Online PowerShell modulon keresztül kell elvégezni (a közelmúltban frissítve a 3-as verzióra). Az Exchange saját belső API-kkal rendelkezik, amelyek még nem érhetők el a Graphon keresztül. Ez azt jelenti, hogy a postafiókok kezelését nem támogatja az SDK (vagy éppen a Graph API).

Szűrés és keresés használata

Sok adminisztrátor gyakori forgatókönyve az adatok részleges információk alapján történő visszaküldése. Például az összes felhasználó megkeresése egy adott részlegen belül. A -filter lekérdezési paraméter az eredmények ismert kritériumok alapján történő szűrésére szolgál, és támogatja a szabványos OData szűrőoperátorokat (egyenlő, nem egyenlő, kevesebb, mint, stb.) és függvények (kezdődik/végződése). Az operátorok támogatása modulonként és végpontonként eltérő, ezért érdemes átnézni a dokumentációt a szkriptek tervezésekor.

A szűrők támogatják a feltételes operátorokat (és/vagy) az összetettebb lekérdezések összeállításához. Például a következő parancs lekérdezi azokat a felhasználókat, akiknek részlegük „Marketing” értékre van állítva:

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

Ezután adja hozzá astartswith elemet, hogy megkeresse azokat a marketingfelhasználókat, akiknek „A” kezdetű megjelenített neve van:

Get-MgUser -Filter "(department eq 'Marketing') and (startswith(DisplayName,'A'))"

Végül hozzáadunk egy másik szűrőt az „AllanD@M365x18562375.OnMicrosoft.com” e-mail-című felhasználói fiók kizárásához. Ne feledje, hogy a notequals (ne) szűrő egy Graph speciális lekérdezés, így a konzisztenciaszint (esetleges >) és countvariable paramétereket kell átadni:

Get-MgUser -Filter "(department eq 'Marketing') and (startswith(DisplayName,'A')) and (Mail ne 'AllanD@M365x18562375.OnMicrosoft.com')" -ConsistencyLevel eventual -CountVariable count

Az 1. ábrán ezeket a szűrőket látjuk működés közben.

A többértékű tulajdonságok esetében a szűrő egy kicsit több munkát igényel a Lambda operátorok hozzáadásával. A Lambda-operátorok szűrhetők ezeken a tulajdonságokon, például egy adott licencre történő szűréskor, amint azt ebben a cikkben ismertetjük, amely a /Bármilyen szűrők használatáról szól a Microsoft Graph API-lekérdezésekben a PowerShell-lel.

A keresés egy másik módszer az adatok keresésére, és akkor hasznos, ha kevésbé specifikus információkkal rendelkezik. Például, ha az összes olyan csoportra szeretne keresni, amelynek megjelenített nevében szerepel a „Sales” szó, használja az alábbi szintaxist.

Get-MgGroup -Search "Displayname:Sales" -ConsistencyLevel eventual

Vegye figyelembe, hogy a Keresés paraméter használatakor a ConsistencyLevel paramétert eseményre kell állítani, mivel ez egy speciális lekérdezés. A CountVariable paraméter nem kötelező a keresésnél. A keresés és a szűrő paraméterek együtt is használhatók a találatok további szűkítésére, amint az a 2. ábrán látható.

A PowerShell SDK-val való szűrés és keresés egyszerűbb folyamat, mint az API-hívás kézzel történő létrehozása. Mint minden PowerShell SDK-parancsmag esetében, a debug paraméter hozzáadása megmutatja a szűrők alkalmazásához használt URI-t (3. ábra).

Microsoft Platform migrációs tervezés és konszolidáció

Egyszerűsítse a migráció tervezését, legyőzze az átállási kihívásokat, és gyorsabban fejezze be a projekteket, miközben minimalizálja a felhasználók költségeit, kockázatait és megszakításait.

Jelentés

A Graph API egy hasznos eszköz a környezetben lévő objektumok jelentéskészítéséhez. Ez a Microsoft 365 licencjelentés létrehozása a Microsoft Graph SDK for PowerShell használatával című cikk például bemutatja, hogy (viszonylagos) egyszerűen és kis mennyiségű parancsfájl segítségével hogyan lehet jelentéseket készíteni és pontosan a szükségesre szabni. Ez nagy segítség lehet, ha a beépített jelentés nem azt adja, amit keres.

Egy másik gyakori feladat a jelentéskészítés a Microsoft 365-csoportokról. A Microsoft 365-csoportok számos munkaterhelés kulcsfontosságú összetevői, és rendszergazdaként nem könnyű megkülönböztetni, hogy mely csoportok melyik összetevőhöz csatlakoznak. A Graph API által visszaadott Group objektum nagy mennyiségű információt tartalmaz, amely segít ebben, és az SDK más parancsmagjaival kombinálva ezeket a személyre szabott jelentéseket sokkal könnyebben elkészíthetjük.

Például az alábbi kód először visszaadja a szervezet összes egyesített csoportját (a groupTypes attribútum szűrésével), majd a Get-MgGroupDrive parancsmag segítségével lekéri a szervezet URL-jét. a Csoportokhoz tartozó Dokumentumtár. Ezeket az adatokat a $Jelentés változó tárolja a csoport néhány egyéb részletével együtt, és szükség szerint exportálható.

##Return all Unified Groups
[array]$Groups = Get-MgGroup  -Filter "groupTypes/any(x:x eq 'Unified')" -All
##Create Report Array
$Report = @()
##Iterate each Group to retrieve the Drive URL and append to the Report
Foreach($Group in $Groups){
$Drive = Get-MgGroupDrive -GroupId $Group.id
$DriveDetails = [PSCustomObject]@{
GroupID = $Group.id
GroupName = $Group.displayname
Email = $Group.mail
URL = $Drive.webURL
}
$Report += $DriveDetails
}

Ez a gyorsjelentés (kimenet a 4. ábrán látható) megmutatja, hogy milyen egyszerűen, különösebb erőfeszítés nélkül lehet visszakeresni a szükséges információkat.

Tömeges kezelés

A felhasználók és csoportok helymeghatározása és jelentése az SDK-n keresztül szép, de a Microsoft 365-környezet kezelésének nagy része frissítésből és új objektumok létrehozásából áll. A licencelés ismét jó példa erre a Microsoft 365 licenckezelésről az Azure AD-fiókokhoz a Microsoft Graph PowerShell SDK-val című cikkben.

Egy másik gyakori felhasználási eset az objektumok tömeges létrehozása, például tömeges felhasználók létrehozása. Egy tipikus forgatókönyv itt a felhasználók kiépítése egy HR-adatbázisból kivont CSV-fájlból. Általában felhasználókat biztosítunk, és licencet adunk hozzá, ebben az esetben hozzáadjuk őket egy Azure AD licencelési csoporthoz.

Az 5. ábrán látható CSV-fájl használatával az alábbi szkript biztosítja a felhasználókat a keresztnév.vezetéknév@domain.com formátumban, ideiglenes jelszót állít be, és hozzáadja a felhasználót a licenccsoporthoz:

##Retrieve the Licensing Group
$LicenseGroup = Get-MgGroup -Filter "Displayname eq 'M365-E3-License'"

##Import the CSV
$csv = Import-Csv C:\temp\NewStaff.csv

##Set the Domain Suffix
$DomainSuffix = "M365x18562375.onmicrosoft.com"

##Loop through each user
foreach($user in $csv){
$PasswordProfile = @{
Password = $user.'Temporary Password'
}
##Provision the user
$UserObject = New-MgUser -DisplayName "$($user.'first name') $($user.surname)" -PasswordProfile $PasswordProfile -AccountEnabled -MailNickname "$($user.'first name').$($user.surname)" -UserPrincipalName "$($user.'first name').$($user.surname)@$DomainSuffix"

##Add the user to the license group
New-MgGroupMember -GroupId $LicenseGroup.id -DirectoryObjectId $UserObject.id
}

Összegzés

Ebben a cikkben megvizsgáltam néhány gyakori forgatókönyvet, ahol a Microsoft Graph PowerShell SDK segíthet a bérlői rendszergazdáknak a gyakori folyamatok automatizálásában. Nincs itt semmi rettenetesen újdonság azoknak, akik egy ideje PowerShellt használnak bérlőik kezelésére, bár vannak előnyei annak, hogy minden egy modulban elérhető. A többi modul kódjának adaptálása nem jelenthet túl nagy kihívást, ha már az alapokat lerakta. A sorozat következő részében a dolgok kissé bonyolultabbak lesznek, ahogy belemélyedünk az egyes szolgáltatásokkal, például a Teams-szel és az Exchange-szel való interakcióba, és felfedezzük a Graph használatának néhány érdekes előnyeit.

Kiberbiztonsági kockázatkezelés az Active Directoryhoz

Fedezze fel, hogyan lehet megelőzni és helyreállítani az AD-támadásokat ezekkel a kiberbiztonsági kockázatkezelési megoldásokkal.

Kapcsolódó cikkek