Si të lidheni me shërbime të shumta të Office 365 duke përdorur PowerShell

Përditësimi i fundit: 29/03/2026
Author: Isaac
  • Është thelbësore të përgatitet mjedisi (versionet e Windows, PowerShell, .NET dhe politikat e ekzekutimit) dhe të caktohen rolet e duhura në Microsoft 365 përpara se të përdoret PowerShell.
  • Modulet moderne (ExchangeOnlineManagement, Microsoft.Graph, SharePoint Online dhe MicrosoftTeams) ju lejojnë të lidheni me shërbime të shumta në një seancë të vetme me autentifikim modern dhe MFA.
  • Përdorimi i saktë i certifikatave, Identiteteve të Menaxhuara dhe mbyllja e qartë e sesionit përmirëson sigurinë, shmang kufizimet e sesionit dhe lehtëson automatizimin pa mbikëqyrje.
  • Shumica e gabimeve të lidhjes zgjidhen duke kontrolluar modulet e instaluara, lejet RBAC, përputhshmërinë TLS dhe cilësimet e proxy ose firewall.

Lidhu me shërbime të shumta të Office 365 me PowerShell

Nëse e menaxhoni Microsoft 365/Office 365 çdo ditë, herët a vonë do të zbuloni se ta bëni këtë vetëm nga qendra e administrimit është një pengesë. PowerShell bëhet thika e ushtrisë zvicerane për të menaxhuar kutitë postare, përdoruesit, faqet e SharePoint, Ekipet ose politikat e sigurisë në një mënyrë masive dhe të automatizuar.

Problemi është se shumë administratorë përfundojnë me katër ose pesë dritare PowerShell të hapura në të njëjtën kohë: një për Exchange Online, një për SharePoint Online, një për Teams, një për Microsoft Graph… e kështu me radhë. Kjo qasje është e vështirë, e vështirë për t’u mirëmbajtur dhe joefikase.Në këtë udhëzues do të shihni se si ta përgatitni mjedisin dhe si të lidheni me të ekzekutoni shërbime të shumta të Office 365 nga një ose disa seanca PowerShellduke përdorur module moderne dhe praktikat më të mira të sigurisë.

Parakushtet dhe përgatitja e mjedisit

Para se të filloni të shkruani komanda sikur të mos ketë të nesërme, është mirë të siguroheni që pozicioni nga i cili po menaxhoni përmbush disa kërkesa. kërkesat minimale të sistemit, rrjetit dhe sigurisëNëse e anashkaloni këtë pjesë, do të përballeni me gabime të fshehta si "cmdlet nuk njihet", "nuk mund të ngarkojë skedarin" ose probleme me vërtetimin.

Sa i përket sistemit operativJu nevojitet një version 64-bit i Windows. Sistemet operative të mbështetura përfshijnë, por nuk kufizohen vetëm në:

  • Windows 11 dhe Windows 10
  • Windows 8/8.1 dhe Windows 7 SP1
  • Windows Server 2012, 2012 R2, 2016, 2019 dhe 2022

Në këto pajisje, versioni i rekomanduar është PowerShell 5.1 ose PowerShell 7+Nëse përdorni Windows PowerShell 5.1, sigurohuni që keni instaluar .NET Framework 4.7.2 ose më të ri dhe modulin PowerShellGet të përditësuar, pasi kjo është ajo që lejon Instaloni module moderne nga Galeria PowerShell me shumë rehati Install-Module.

Në nivelin e rrjetit, Duhet të keni qasje në HTTPS (TCP 443) drejt domeneve të Microsoft 365, siç janë:

  • perspektivë.office365.com (Shkëmbim Online)
  • login.microsoftonline.com (autentifikim)
  • graph.microsoft.com (Microsoft Graph)
  • *.office365.com, *.microsoft.com në skenarë më të kufizuar

Nëse ndodheni në një mjedis me një firewall ose proxy të korporatës, kontrolloni me ekipin e rrjetëzimit që këto pika fundore nuk po filtrohen. Një e thjeshtë Test-NetConnection outlook.office365.com -Port 443 Ju ndihmon të verifikoni lidhjen bazë.

Një shtyllë tjetër është politika e ekzekutimit të skriptitShumë module ngarkojnë skripte lokale ose të largëta, dhe nëse politika është shumë kufizuese, ato do të bllokohen.

  • Get-ExecutionPolicy për të parë vlerën aktuale.
  • Nënshkruar nga distanca Kjo është pika më e zakonshme e ekuilibrit: lejon skripte lokale të pafirmosura dhe kërkon firma për skriptet e shkarkuara nga interneti.

Për ta vendosur vetëm për përdoruesin aktual:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Në disa mjedise, preferohet Të gjitha të nënshkruara (të gjitha të nënshkruara) ose, në raste shumë specifike të provave, i pakufizuar o bajpas në nivelin e procesit. Çelësi është që ju të kuptoni se, pa e rregulluar këtë, Nuk do të jeni në gjendje të importoni seanca ose të ekzekutoni skripte lidhjeje.

Roli i administratorit dhe lejet e kërkuara

Pavarësisht se sa mirë është konfiguruar mjedisi juaj, nëse llogaria me të cilën po lidheni nuk ka leje, Do të merrni gabimet "Aksesi i mohuar" njëri pas tjetrit.Për të menaxhuar Microsoft 365 globalisht me PowerShell, ju nevojitet të paktën një nga këto role:

  • Administrator Global, nëse doni të kontrolloni praktikisht gjithçka.
  • Administratori i Bursës për seksionin e postës dhe kutive postare.
  • Role të tjera specifike: Administrator Sigurie, Administrator Ekipesh, etj.
  Si të bëni Windows 10 të njohë USB-të

Exchange Online përdor RBAC, kështu që llogaria juaj duhet të jetë në grupe si Menaxhimi i Organizatës o Menaxhimi i Marrësit të jesh në gjendje të krijosh dhe modifikosh kuti postare, rregulla etj. Dhe nëse do të përdorësh Microsoft Graph, Do të duhet të pranoni fushat e duhura, për shembull:

  • Përdoruesi.Lexoni.Të Gjitha për të numëruar përdoruesit dhe për të lexuar të dhënat bazë.
  • Group.ReadWrite.All për të menaxhuar grupet dhe, ndër të tjera, Ekipet.

Gjithashtu mbani në mend se mundeni Aktivizoni ose çaktivizoni qasjen në Exchange Online PowerShell për përdorues me cmdlet-e si:

Kjo është shumë e dobishme për forcimin e sipërfaqes së sulmit: Jo të gjithë duhet të jenë në gjendje të hapin një sesion PowerShell në Exchange Online.edhe nëse ka një kuti postare.

Instalimi i moduleve kryesore për Office 365/Microsoft 365

Për t'u lidhur me shërbimet e ndryshme në një mënyrë moderne, nuk keni më nevojë për ato instaluesit e vjetër të MSI për "Hyrjen në Shërbimet Online të Microsoft", Lync Online, etj. Shumica e moduleve aktuale instalohen direkt nga Galeria PowerShellgjë që thjeshton shumë mirëmbajtjen dhe përditësimet.

Blloqet themelore të ndërtimit që duhet të keni instaluar janë:

  • Menaxhimi i ExchangeOnlineModuli EXO V2 për Exchange Online (cmdleti kryesor: Connect-ExchangeOnline).
  • Microsoft.Graph dhe sipas dëshirës Microsoft.Graph.Beta- SDK zyrtare e Microsoft Graph për PowerShell.
  • Microsoft.Online.SharePoint.PowerShellAdministrimi i SharePoint Online.
  • Microsoft TeamsMenaxhimi i Microsoft Teams përmes PowerShell.

Instalimi tipik (duke ekzekutuar PowerShell si administrator):

Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
Install-Module -Name Microsoft.Graph -Scope CurrentUser
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
Install-Module -Name MicrosoftTeams -Force

Opsioni Force Detyron instalimin ose përditësimin, ndërsa -LejoClobber Kjo ju lejon të anashkaloni cmdlet-et nga modulet e tjera nëse ekziston një konflikt. Pas kësaj, mund të verifikoni secilin modul me:

Get-Module -ListAvailable -Name ExchangeOnlineManagement

Nëse keni nevojë për pajtueshmëri me skriptet më të vjetra, mund të mbani edhe modulet klasike si p.sh. MSOnline o AzureADPor rekomandimi i Microsoft është të migrohet drejt Microsoft Graph PowerShellqë është e ardhmja e menaxhimit të identitetit dhe burimeve.

Lidhu me shërbime të shumta në një seancë të vetme PowerShell

Qëllimi ideal është të punohet nga një konsolë e vetme për të shmangur kalimin midis dritareve. Lajmi i mirë është se sot mund të bëhet shumë mirë. me kusht që të ngarkoni modulet e duhura dhe të kuptoni se si funksionon secili cmdlet i lidhjes.

Si një model i përgjithshëm, mund të ndiqni këtë rrjedhë:

  1. Nisni PowerShell (mundësisht 64-bit, me leje të larta nëse do të modifikoni ExecutionPolicy).
  2. Krijo një objekt kredencialesh, nëse moduli e pranon atë (Get-Credential).
  3. Ngarko modulet me të cilat do të përdorësh Import-Module.
  4. Ekzekutoni cmdlet-et e lidhjes: Exchange, Graph, SharePoint, Teams…

Shembull i thjeshtë i një hyrjeje interaktive për shërbime të shumëfishta:

$credential = Get-Credential
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -ShowProgress:$true
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
$orgName = "tuempresa" # subdominio de tutenant.onmicrosoft.com
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $credential
Import-Module MicrosoftTeams
Connect-MicrosoftTeams -Credential $credential

Ndërkohë, për Microsoft Graph, autentifikimi ndjek një qasje të ndryshme. Nuk mund t'i kalosh kredencialet direkt në cmdletNë vend të kësaj, hapet një rrjedhë interaktive e bazuar në OAuth 2.0:

Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"

Do të shfaqet një kërkesë që ju kërkon të identifikoheni në shfletuesin tuaj dhe të jepni leje për këto fusha. Pasi të pranohet, seanca e Grafikut do të jetë e përdorshme në të njëjtën dritare PowerShell që është tashmë e lidhur me Exchange, SharePoint dhe Teams.

Me këtë qasje, ju keni gjithçka që ju nevojitet të përqendruar në një seancë të vetme për të menaxhoni llogaritë, kutitë postare, faqet, ekipet dhe cilësimet e sigurisëpa hapur skeda sikur të mos ketë të nesërme.

Përdorimi i Microsoft Graph PowerShell në të gjithë organizatën

Microsoft Graph PowerShell është "standardi i ri" për qasjen në shtresën API të Microsoft 365. Me një SDK të vetëm mund të prekni përdoruesit, grupet, ekipet, pajisjet, raportet etj. Nga PowerShell, përvoja është e ngjashme me çdo modul tjetër, por me nuancat e fushave të veprimit dhe modelin e deleguar kundrejt modelit vetëm për aplikacione.

  Si të zgjidhni problemet e datës dhe orës në Microsoft Office

Për të punuar në mënyrë interaktive, është e zakonshme të përdoret qasje e deleguarJu hyni si përdorues (zakonisht administrator) dhe jepni pëlqimin në emër të atij përdoruesi:

Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph
Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"

Me këto teleskopë, për shembull, mund të:

  • Listo përdoruesit për të gjetur ID-në e përdoruesit të kyçur.
  • Shikoni ekipet ku ai bën pjesë (u bashkua me Ekipet).
  • Listo kanalet të një ekipi specifik.
  • Dërgoni mesazhe në një kanal të Teams nga skriptet.

Për skenarë të pambikëqyrur (punë të planifikuara, tubacione CI/CD, automatizime natën…), opsioni më i mirë është të kaloni në vërtetim vetëm nga aplikacioni me një regjistrim aplikacioni në Microsoft Entra ID dhe një certifikatë X.509. Në atë rast, aplikacioni vërtetohet me ID e Aplikacionit, ID e Qiramarrësit dhe certifikataDhe nuk keni nevojë për ndërveprim njerëzor, gjë që ju lejon të kryeni detyra në sfond në një mënyrë të kontrolluar.

Lidhshmëri moderne me Exchange Online dhe mjedise të tjera

Për vite me radhë u lidha me Exchange Online me New-PSSession dhe autentifikimi bazë. Kjo rrugë është mbyllur zyrtarisht që nga tetori i vitit 2022.Tani gjithçka kalon nëpër modulin ExchangeOnlineManagement, i cili përdor autentifikimin modern (OAuth 2.0) dhe mbështet MFA, certifikatat, Identitetet e Menaxhuara, etj.

Modeli bazë për administratorët njerëzorë është:

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName [email protected]

Hapet dritarja e hyrjes, futni fjalëkalimin tuaj, zgjidhni MFA-në dhe keni mbaruar. Nga aty mund të përdorni cmdlet-e si Get-EXOMailbox, Get-EXOMailboxStatistics, New-Mailbox, Set-Mailbox o Remove-Mailbox pa më shumë.

Për të automatizuar pa shfletues, keni disa mundësi. vërtetim i bazuar në certifikatë o Identitete të Menaxhuara në Azure:

Connect-ExchangeOnline -ManagedIdentity -Organization tudominio.onmicrosoft.com

Si alternativë, duke përdorur një aplikacion të regjistruar dhe një certifikatë:

Connect-ExchangeOnline -AppId "APP-ID" -Organization "tudominio.onmicrosoft.com" -CertificateThumbprint "THUMBPRINT"

Ky lloj lidhjeje është ideal kur doni të ekzekutoni skripte të përsëritura nga Azure Automation, Azure Functions ose një VM me identitet të menaxhuar: Nuk ka fjalëkalime me tekst të thjeshtë dhe cikli jetësor i certifikatës kontrollohet mirë..

Lidhu me SharePoint Online dhe Teams nga PowerShell

Pasi të keni mbuluar emailin dhe identitetin, ka shumë të ngjarë të dëshironi të organizoni faqet e SharePoint dhe ekipet e Teams nga skriptet. Procesi është shumë i ngjashëm me atë që keni parë me Exchange; vetëm modulet dhe cmdlet-et ndryshojnë.

SharePointOnline Duhet ta dini URL-në e administrimit të qiramarrësit tuaj, diçka si kjo: https://tuempresa-admin.sharepoint.comLidhja bazë është:

Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
$cred = Get-Credential
Connect-SPOService -Url "https://tuempresa-admin.sharepoint.com" -Credential $cred

Nga aty keni cmdlet-e në dispozicionin tuaj, të tilla si Get-SPOSite për të listuar koleksionet e faqeve, komandat për të zbatuar politikat, për të menaxhuar hapësirën e ruajtjes, etj. Mund të ripërdorni të njëjtin objekt kredencialesh për shërbime të tjeraduke thjeshtuar skenarin.

Në rastin e Ekipet e MicrosoftModuli gjithashtu mbështet autentifikimin modern dhe MFA-në. Një rrjedhë tipike pune do të ishte:

Import-Module MicrosoftTeams
Connect-MicrosoftTeams -Credential $cred

Si alternativë, mund ta lini të hapë dialogun e hyrjes pa dhënë kredenciale të qarta. Pasi të hyni, cmdlet-et kryesore si p.sh. Get-Team, New-Team o Get-TeamUser Ato ju lejojnë të automatizoni krijimin e ekipit, menaxhimin e anëtarëve, konfigurimin e kanalit etj., shpesh në kombinim me Microsoft Graph për skenarë më të avancuar.

Menaxhim dhe shkëputje e sigurt e sesionit

PowerShell nuk është thjesht plug and play: Seancat e hapura gjithashtu duhet të menaxhohen siç duhet.Për shembull, Exchange Online vendos një limit prej rreth 3 seancash të njëkohshme për përdorues, dhe nëse i lini të hapura, do të hasni gabimin e famshëm "numri maksimal i seancave është tejkaluar".

Praktika e rekomanduar është mbyll në mënyrë të qartë seancat Kur të përfundoni detyrat tuaja, në vend që thjesht ta mbyllni dritaren. Për Exchange Online me EXO V2:

  Si të filloni me AutoIt: Një udhëzues i plotë hap pas hapi

Disconnect-ExchangeOnline -Confirm:$false

Nëse keni gjeneruar edhe seanca në distancë me New-PSSession për shërbime të tjera (ose për pajtueshmëri me skriptet më të vjetra), këshillohet gjithashtu që t'i pastroni ato:

Get-PSSession | Remove-PSSession

SharePoint dhe Teams kanë cmdlet-et e tyre të shkëputjes:

Disconnect-SPOService
Disconnect-MicrosoftTeams

Duke punuar në këtë mënyrë, shmangni seancat e mbetura pa punë në servera, lironi burimet dhe zvogëloni rreziqet e sigurisë. Gjithashtu, nëse keni skripte të gjata, merrni në konsideratë ekzekutojini ato në një seancë të vetme dhe monitoroni kohët e pritjes në vend të krijimit të lidhjeve dhe shkëputjeve të rastësishme, me lakime.

Zgjidhja e problemeve të zakonshme të lidhjes

Pavarësisht se sa mirë e keni konfiguruar, jeni pothuajse të sigurt se në një moment do të shfaqet një mesazh i çuditshëm. Shumica e gabimeve që lidhen me shërbimet e Office 365 me PowerShell ndahen në disa grupe tipike.:

Kur shihni mesazhe si “Termi 'Connect-ExchangeOnline' nuk njihet”, zakonisht do të thotë që Moduli nuk është instaluar ose nuk është importuar siç duhetJu mund ta verifikoni këtë me:

Get-Module -ListAvailable -Name ExchangeOnlineManagement

Nëse nuk shfaqet, riinstalojeni nga Galeria PowerShell. Nëse shfaqet por nuk ngarkohet, Sigurohuni që nuk po përdorni një version të vjetëruar ose 32-bit të PowerShell. që nuk e mbështet atë modul.

Gabimet e vërtetimit ("Qasja e mohuar", "nuk keni leje të mjaftueshme") zakonisht shkaktohen nga:

  • Role të pamjaftueshme në Microsoft 365 (mungesë e Administratorit të Exchange, Administratorit Global, etj.).
  • Kërkesat e paplotësuara të MFA-së, fjalëkalimi i aplikacionit i çaktivizuar ose politikat e aksesit me kusht.
  • Kredencialet e kërkuara janë të korruptuara në menaxherin e kredencialeve të Windows.

Zgjidhja këtu është të rishikohen rolet në portalin e administratorit, të kontrollohet nëse organizata ka rregulla të aksesit me kusht që bllokojnë PowerShell dhe, nëse është e nevojshme, fshij kredencialet e ruajtura dhe testoni përsëri rrjedhën e hyrjes.

Problemet me TLS ose proxy-t janë gjithashtu të zakonshme: mesazhe si "Lidhja themelore u mbyll" ose "Nuk mund të lidhet me serverin e largët" tregojnë se TLS 1.2 nuk po përdoret ose firewall po bllokon trafikun. Sigurohuni që:

  • Të ketë .NET të përditësuar (4.6.2 ose më të lartë).
  • Detyro TLS 1.2 nëse është e nevojshme nga PowerShell.
  • Verifikoni që serveri proxy lejon trafikun drejt pikave fundore të Microsoft-it.

Së fundmi, kur keni instaluar disa module (MSOnline, AzureAD, ExchangeOnlineManagement, versione më të vjetra të EXO, etj.), ato mund të shfaqen konfliktet e cmdlet-it ose versione. Në atë rast:

  • Lista e moduleve me Get-Module -ListAvailable.
  • Zbuloni se cilit modul i përket një cmdlet Get-Command NombreCmdlet.
  • Importoni në mënyrë të qartë versionin e saktë me Import-Module -RequiredVersion.
  • Çinstaloni modulet e vjetra që nuk ju nevojiten më Uninstall-Module.

Me këto udhëzime, shumica e problemeve zgjidhen pa pasur nevojë të çmendeni duke lexuar regjistra pafund.

Zotërimi i lidhjes me shërbime të shumta të Office 365 duke përdorur PowerShell ju lejon të kaloni nga bërja e ndryshimeve manuale në portal në Automatizoni detyra masive, aplikoni konfigurime të përparuara që as nuk shfaqen në GUI dhe ruani një kontroll shumë më të imët mbi sigurinë dhe aksesin.Përgatitja e duhur e mjedisit (versionet, modulet, lejet dhe politikat e ekzekutimit), përdorimi i autentifikimit modern me MFA dhe certifikata, centralizimi i lidhjeve në një ose disa seanca dhe menaxhimi i ciklit jetësor të seancës do ta bëjë punën tuaj të përditshme si administrator i Microsoft 365 shumë më të lehtë dhe, mbi të gjitha, më të shkallëzueshme.