Weboldal keresés

Bevezetés a Microsoft Graph PowerShell SDK III. részébe: Interakció az Exchange Online és a SharePoint Online szolgáltatással


Túllépés az egyszerű irányítási feladatokon

A sorozat II. részében megvizsgáltam, hogy a Microsoft Graph és a Graph PowerShell SDK hogyan teszi lehetővé a rendszergazdák számára a Microsoft 365 számos aspektusának egyetlen modulból történő kezelését. Némi PowerShell tapasztalattal az SDK viszonylag egyszerűvé teszi a szokásos adminisztrációs feladatokat és a jelentéskészítést.

Bár ez a funkció jó, ha egyetlen helyen elérhető, a Microsoft 365 PowerShell-en keresztüli kezelése régi hír a legtöbb rendszergazda számára. A Graph SDK előnye más módszerekkel szemben az, hogy teljes mértékben ki tudja használni a Graph API előnyeit, lehetővé téve a rendszergazdák számára, hogy interakcióba lépjenek olyan Microsoft 365 szolgáltatásokkal, mint az Exchange Online és a SharePoint Online, amelyek korábban dedikált API-k használatát igényelték, amelyekhez vitathatatlanul nagy szükség volt. nagyobb időbefektetés a tanuláshoz.

Viszlát EWS

Az Exchange Web Services (EWS) az Exchange Server 2007 óta a Microsoft Exchange szerves része. Az EWS támogatja az Exchange-erőforrásokhoz, például a postafiókokhoz való programozott hozzáférést. 2018-ban az Exchange csapata bejelentette, hogy a továbbiakban nem fektet be aktívan az Exchange Online EWS-be, és azt javasolta, hogy az alkalmazások tulajdonosai és szállítói térjenek át a Microsoft Graphra. Ezt 2021-ben API-értékcsökkenés követte, jelezve, hogy az EWS számára a vég látható.

Kommunikáció a levélküldeményekkel

Az EWS gyakori feladata a levelek lekérése és feldolgozása egy postafiókból. A Microsoft Graph PowerShell SDK megkönnyíti ezt a folyamatot különféle üzenetekkel kapcsolatos parancsmagokkal. Például az alábbi parancs lekéri az összes elemet a felhasználó postafiókjából.

Megjegyzés: A sorozat I. részében részletezett delegált engedélyek használata csak olyan elemek lekérését teszi lehetővé, amelyekhez fiókja hozzáfér, például saját postafiókját. Más postafiókok és erőforrások eléréséhez, amelyekhez nem fér hozzá, alkalmazásengedélyeket kell használni. Alapértelmezés szerint az SDK mindig delegált engedélyeket használ. Ha többet szeretne megtudni az alkalmazásengedélyek használatáról, tekintse meg a sorozat I. részét.

Get-MgUserMessage -UserId <UserID> -All

Az összes tétel postafiókból való visszaküldése jó teszt, de nem túl praktikus, amikor egy feladat végrehajtásához kódot építünk. Számos módja van az eredmények szűrésének, hogy javítsa a parancsmag végrehajtási idejét, és csak a releváns objektumokat adja vissza. Először csak egy adott mappában lévő elemeket tudjuk visszaadni. A Get-MgUserMailFolder parancsmag visszaadja a postafiók legfelső szintű mappáit, a Get-MgUserMailFolderChildFolder parancsmag pedig egy mappa almappáját. Az 1. ábrán megtaláljuk az Inbox mappa egyedi azonosítóját, és ezzel kapjuk meg a Feldolgozandó levelek almappa azonosítóját. Minden egyes levélelemnek és mappának egyedi azonosítója van, amelyet az Exchange Online rendelt ki, amely a tétel ID tulajdonságában tárolódik.

A Get-MgUserMailFolderMessage parancsmag egy megadott mappában található leveleket ad vissza. Ezek az eredmények ezután szűrhetők vagy kereshetők, hogy még tovább szűkítsék őket az alábbi szintaxis használatával.

##Return all messages in a particular folder
Get-MgUserMailFolderMessage -MailFolderId AAMkAGI4NjhmMDBjLTcyNTEtNDZkYy1hMmNhLTZjMThjYjQxODIzZgAuAAAAAAAdY2Aq0HOqRqKvhWSGlIAmAQDcQ9TSiMrlRrOhGqycky_7AABCa1F8AAA= -UserId ffcf3b2c-83d0-4e5f-a432-6d6a740a99d1 -All | fl subject,id
##Search messages in a particular folder for the word “PIM”
Get-MgUserMailFolderMessage -MailFolderId AAMkAGI4NjhmMDBjLTcyNTEtNDZkYy1hMmNhLTZjMThjYjQxODIzZgAuAAAAAAAdY2Aq0HOqRqKvhWSGlIAmAQDcQ9TSiMrlRrOhGqycky_7AABCa1F8AAA= -UserId ffcf3b2c-83d0-4e5f-a432-6d6a740a99d1 -All -Search "PIM" | fl subject,id,ReceivedDateTime
##Filter messages in a particular folder by receivedDateTime and by subject starting with “Your weekly PIM digest'”
Get-MgUserMailFolderMessage -MailFolderId AAMkAGI4NjhmMDBjLTcyNTEtNDZkYy1hMmNhLTZjMThjYjQxODIzZgAuAAAAAAAdY2Aq0HOqRqKvhWSGlIAmAQDcQ9TSiMrlRrOhGqycky_7AABCa1F8AAA= -UserId ffcf3b2c-83d0-4e5f-a432-6d6a740a99d1 -All -Filter "(receivedDateTime gt 2022-10-01T00:00:00Z) and (startswith(Subject,'Your weekly PIM digest'))" | fl subject,id,ReceivedDateTime

A 2. ábrán látható módon a szűrők és a keresés kombinálása olyan parancsmagokkal, mint a Get-MgUserMailFolderMessage, szűkíti az eredményeket, és lehetővé teszi számunkra, hogy pontosan azt kérjük le, amit szeretnénk.

További információ: Ha többet szeretne megtudni a postaláda-elemek Graph SDK-val történő értékeléséről, tekintse meg ezt a cikket: Postafióktartalom-jelentés létrehozása a PowerShell és a Graph segítségével.

A tételek JSON formátumban, a levelek pedig üzenetforrás-típusként kerülnek visszaadásra. Az erőforrástípus egy előre meghatározott formátum (JSON-ban) egy adott objektumhoz, az üzenet erőforrástípus-objektumának sémáját a Graph dokumentációja részletezi.

A Graph SDK támogatja a meglévő levelek módosítását is az Update-MgUserMessage parancsmaggal. Az alábbi kódban frissítjük az üzenet azonosítóval azonosított üzenet tárgyát:

##Modify the subject of a message
Update-MgUserMessage -MessageId AAMkAGI4NjhmMDBjLTcyNTEtNDZkYy1hMmNhLTZjMThjYjQxODIzZgBGAAAAAAAdY2Aq0HOqRqKvhWSGlIAmBwDcQ9TSiMrlRrOhGqycky_7AABCa1F8AADcQ9TSiMrlRrOhGqycky_7AABCa4w1AAA= -UserId ffcf3b2c-83d0-4e5f-a432-6d6a740a99d1 -Subject "Updated message subject"

A Move-MgUserMessage parancsmag áthelyezi a leveleket egy célmappába. A 3. ábrán megkapjuk egy létező levél azonosítóját, megkapjuk az Inbox mappa azonosítóját, és áthelyezzük abba a leveleket.

A meglévő levélküldemények módosításának használati esetei a tesztelésen kívül meglehetősen korlátozottak. Ami még praktikusabb, az a lehetőség, hogy közvetlenül a PowerShellről küldhet e-maileket. Ez a cikk, amely elmagyarázza, hogyan küldhet Exchange Online e-maileket a Microsoft Graph SDK for PowerShell használatával, bemutatja, hogyan használhatja a Graph SDK-t levelek küldésére közvetlenül a PowerShellből.

A SharePoint Online használata

A fájl- és webhelykezelés és jelentéskészítés a Microsoft Graph másik fontos előnye. A SharePoint Online (és kibővítve a Teams és a OneDrive) fájlokkal és webhelyekkel való interakcióhoz a PowerShell segítségével korábban a SharePoint PnP PowerShell modul vagy a SharePoint Client Side Object Model (CSOM) ismeretére volt szükség, amelyek egyike sem különösebben intuitív, ha nem jártas. a SharePoint fejlesztésben.

A Microsoft Graph végpontokat tesz elérhetővé a SharePoint Online-nal való interakcióhoz, és bár nem rendelkezik olyan mélységgel, mint a PnP vagy a CSOM (például webhelysablonok létrehozása), a legtöbb olyan feladat, amelyet a bérlői rendszergazdáknak el kell végezniük, teljes mértékben támogatottak.

Egy példa arra, hogy a Graph hogyan segíthet a rendszergazdáknak a SharePoint Online-ban, ez a cikk, amely arról szól, hogyan használhatja a Graph API-kat a SharePoint Online webhely fájljairól szóló jelentés létrehozására. A cikkben szereplő kód először lekéri az adott webhelyhez kapcsolódó meghajtók (Dokumentumkönyvtárak) listáját és a „Dokumentumok” könyvtár szűrőit. Innentől kibővíti a gyökér alatti fájlokat és mappákat, hogy hasznos jelentést készítsen.

Ez a szkript a PowerShell SDK Invoke-MgGraphRequest parancsmagját használja a Drives végpont lekérdezéséhez és az összes könyvtár visszaadásához. Az Invoke-MgGraphRequest nagyszerű módja a lekérdezések futtatásának olyan végpontok ellen, amelyeket ismer, vagy olyan végpontok ellen, amelyek nem rendelkeznek natív PowerShell SDK-parancsmaggal.

Ugyanezek az eredmények érhetők el a Get-MgSiteDrive parancsmag használatával, azonban van néhány árnyalata a parancsmagnak. Például a Get-MgSiteDrive egyszerű futtatása egy adott webhelyen lekérdezi egy webhely /drive végpontját. A /drive végpont csak a webhely alapértelmezett dokumentumtárát adja vissza. Ez a 4. ábrán látható az SDK debug funkciójával, ahogyan azt ebben a cikkben tárgyaljuk, amely a Microsoft Graph PowerShell SDK parancsmagok Debug paraméterének használatával teszi közzé a Graph API kéréseket.

A webhelyhez csatolt összes meghajtó visszaküldéséhez hozzá kell adnunk a -All paramétert. Ez a paraméter módosítja a lekérdezett végpontot /drive-ről /drives-re. Ez a finom változás az URI-ban (amit nehéz észrevenni a hibaelhárítás során, ha egy szkript nem működik a várt módon) megváltoztatja az eredménykészletet az alapértelmezett könyvtárról az összes könyvtárra. Az URI a -All paraméterrel az 5. ábrán látható.

Ez az árnyalat (vagy funkció, nehéz megmondani a dokumentációból) viszonylag kicsi, de kezdi mutatni a PowerShell SDK néhány durva élét. Az SDK még mindig folyamatban van, és kétségtelenül idővel kifejlődik a továbbfejlesztett dokumentációval és a parancsmagokkal közvetlenül támogatott több végponttal. Addig mindig az Invoke-MgGraphRequest parancsmag pótolja a hiányosságokat.

Egy másik példa a fájlok listázása egy meghajtón. Úgy tűnik, hogy a Get-MgDriveItem parancsmagnak meg kell tennie, amit itt kell, azonban ez a parancsmag a /drive/driveid/items végpontot használja, amely bizonyos elemek visszaadására szolgál, nem sorolja fel az összes elemet. A szkriptben a https://graph.microsoft.com/v1.0/sites/$ ($Site.Id)/drives/$ ($DocumentLibrary.Id)/root/children URI-t használják az Invoke-MgGraphRequest parancsmagot, és ez tökéletesen elvégzi a munkát.

Összegzés

A Graph PowerShell SDK nagyszerű eszköz az adminisztrátorok számára, hogy olyan módon kommunikáljanak a Microsoft 365 munkaterheléseivel, amelyek korábban nem voltak praktikusak jelentős időbefektetés nélkül. Az SDK számos lehetőséget kínál a Microsoft Graph használatának megkezdéséhez, azonban vannak olyan területek, amelyek fejlesztésre szorulnak.

Noha nem helyettesíti a Graph API fortélyainak elsajátítását komplex megoldások létrehozásához, az SDK fantasztikus módja annak, hogy elinduljon és elvégezze a szokásos feladatokat anélkül, hogy túl sok időt kellene ráfordítania.

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