Adaugarea utilizatorilor in Shared Mailbox prin PowerShell

Configurare noua (How To)

Situatie

  1. PROBLEMA

Un utilizator existent în tenantul Microsoft 365, cu cont activ pe domeniul organizației, trebuie să primească acces la un shared mailbox. În Microsoft 365 admin center (Teams & groups > Shared mailboxes > Members) sau în Exchange admin center (Recipients > Mailboxes > Delegation), utilizatorul nu apare în lista de selecție, iar căutarea după nume sau adresă nu returnează niciun rezultat.

Soluția este acordarea permisiunilor direct din Exchange Online PowerShell, unde obiectul poate fi identificat după UPN, adresă SMTP sau GUID, fără a depinde de selectorul grafic.

Backup

  1. CAUZE FRECVENTE
Cauză Cum se recunoaște Efect în interfața grafică
Utilizator ascuns din lista globală de adrese (GAL) HiddenFromAddressListsEnabled = True; frecvent la conturi sincronizate din AD local cu atributul msExchHideFromAddressLists. Selectorul nu afișează obiectele ascunse.
Mediu hibrid — mailbox încă pe Exchange local RecipientTypeDetails = MailUser în Exchange Online. Selectorul listează doar mailboxuri cloud.
Mailbox neprovizionat Licență fără Exchange Online sau atribuită recent; Get-EXOMailbox nu găsește obiectul. Utilizatorul nu există încă ca destinatar.
Replicare incompletă Cont creat sau redenumit în ultimele ore. Indexul de căutare nu este actualizat.
Nume duplicat sau ambiguu Mai multe obiecte cu același DisplayName. Rezultatul corect este omis sau confundat.
Permisiuni insuficiente ale operatorului Rol fără Recipient Management. Butoanele de adăugare lipsesc sau dau eroare.

Exemplele folosesc adrese generice (office@domeniu.ro, utilizator@domeniu.ro). Înlocuiți-le cu valorile din propriul tenant.

Solutie

Pasi de urmat
  1. CERINȚE PRELIMINARE
  • rol Exchange Administrator sau un rol care include Recipient Management (cel mai mic privilegiu suficient);
  • PowerShell 7.x (recomandat) sau Windows PowerShell 5.1;
  • modulul ExchangeOnlineManagement, versiunea 3.x;
  • autentificare modernă cu MFA pentru contul de administrator;
  • tichet aprobat care identifică shared mailboxul, utilizatorul și permisiunile solicitate.
  1. PROCEDURA

4.1  Instalarea modulului și conectarea

POWERSHELL

# O singură dată, ca utilizator curent

Install-Module ExchangeOnlineManagement -Scope CurrentUser

 

# La fiecare sesiune

Import-Module ExchangeOnlineManagement

Connect-ExchangeOnline -UserPrincipalName admin@domeniu.ro

4.2  Identificarea obiectelor

POWERSHELL

# Shared mailboxul

Get-EXOMailbox -Identity office@domeniu.ro |

Format-List DisplayName, PrimarySmtpAddress, RecipientTypeDetails

 

# Utilizatorul — inclusiv dacă este ascuns din GAL

Get-EXORecipient -Identity utilizator@domeniu.ro |

Format-List DisplayName, PrimarySmtpAddress, RecipientTypeDetails,

ExternalDirectoryObjectId

Get-Mailbox -Identity utilizator@domeniu.ro |

Format-List HiddenFromAddressListsEnabled

 

Rezultatul așteptat: shared mailboxul are RecipientTypeDetails = SharedMailbox, iar utilizatorul UserMailbox. Dacă utilizatorul apare ca MailUser, consultați capitolul 5.2 înainte de a continua.

IDENTIFICARE FĂRĂ AMBIGUITATE

Dacă există mai multe obiecte cu același nume, folosiți în comenzile următoare valoarea ExternalDirectoryObjectId (ID-ul din Microsoft Entra) sau adresa SMTP primară, nu numele afișat.

4.3  Acordarea accesului complet (Full Access)

POWERSHELL

Add-MailboxPermission -Identity office@domeniu.ro `

-User utilizator@domeniu.ro `

-AccessRights FullAccess -InheritanceType All -AutoMapping $true

 

Cu AutoMapping activat (implicit), shared mailboxul apare automat în Outlook desktop la următoarea pornire. Folosiți -AutoMapping $false dacă utilizatorul are acces la multe mailboxuri și se dorește adăugarea manuală.

4.4  Trimitere în numele mailboxului (Send As) — opțional

POWERSHELL

Add-RecipientPermission -Identity office@domeniu.ro `

-Trustee utilizator@domeniu.ro `

-AccessRights SendAs -Confirm:$false

 

4.5  Trimitere în numele altcuiva (Send on Behalf) — opțional

POWERSHELL

# @{Add=…} păstrează delegații existenți

Set-Mailbox -Identity office@domeniu.ro `

-GrantSendOnBehalfTo @{Add=”utilizator@domeniu.ro”}

Permisiune Ce permite Cum apare destinatarului
Full Access Deschiderea și gestionarea conținutului. Nu permite trimiterea. —
Send As Trimitere ca și cum mesajul ar proveni din shared mailbox. De la: office@domeniu.ro
Send on Behalf Trimitere cu menționarea expeditorului real. De la: utilizator în numele office
PRECEDENȚĂ

 

Dacă utilizatorul are atât Send As, cât și Send on Behalf, se aplică Send As. Alegeți una singură, în funcție de cerința tichetului.

 

4.6  Verificarea

POWERSHELL

Get-EXOMailboxPermission -Identity office@domeniu.ro |

Where-Object { $_.AccessRights -like “Full*” } |

Format-Table User, AccessRights, IsInherited

 

Get-EXORecipientPermission -Identity office@domeniu.ro `

-Trustee utilizator@domeniu.ro

 

Get-EXOMailbox -Identity office@domeniu.ro -Properties GrantSendOnBehalfTo |

Format-List GrantSendOnBehalfTo

 

Aplicarea permisiunilor și apariția mailboxului în Outlook pot dura de regulă până la 60 de minute. În Outlook on the web, mailboxul se poate deschide imediat prin clic pe fotografia de profil > Open another mailbox.

  1. SITUAȚII SPECIALE

5.1  Utilizator ascuns din GAL

Permisiunile acordate prin PowerShell funcționează și pentru utilizatorii ascunși. Nu este necesară reafișarea lor în GAL. Dacă însă shared mailboxul este cel ascuns, delegații nu îl pot deschide prin AutoMapping — în acest caz se adaugă manual în Outlook, ca cont suplimentar.

5.2  Mediu hibrid (utilizator MailUser)

Dacă mailboxul utilizatorului se află încă pe Exchange local, sunt suportate cross-premises doar Full Access și Send on Behalf (nu și Send As), cu configurare suplimentară pe Exchange local — sincronizarea obiectelor ACL-abile. Recomandarea este finalizarea migrării mailboxului în Exchange Online înainte de acordarea accesului; în caz contrar, consultați documentația Microsoft privind permisiunile în implementări hibride (Anexa B).

5.3  Acces pentru un grup de utilizatori

Pentru echipe se poate acorda Full Access unui grup de securitate cu e-mail activat (mail-enabled security group). Gestionarea membrilor devine mai simplă, dar AutoMapping nu funcționează pentru grupuri: utilizatorii adaugă manual mailboxul.

  1. REVOCAREA ACCESULUI (ROLLBACK)
POWERSHELL

Remove-MailboxPermission -Identity office@domeniu.ro `

-User utilizator@domeniu.ro `

-AccessRights FullAccess -InheritanceType All -Confirm:$false

Remove-RecipientPermission -Identity office@domeniu.ro `

-Trustee utilizator@domeniu.ro `

-AccessRights SendAs -Confirm:$false

Set-Mailbox -Identity office@domeniu.ro `

-GrantSendOnBehalfTo @{Remove=”utilizator@domeniu.ro”}

  1. DEPANARE
Simptom / eroare Cauză probabilă Soluție
„couldn’t be found” la -User sau -Trustee Identificator greșit sau mailbox neprovizionat. Folosiți adresa SMTP primară sau ExternalDirectoryObjectId; verificați licența Exchange Online.
„matches multiple entries” Nume afișat ambiguu. Folosiți ExternalDirectoryObjectId.
Avertisment că permisiunea există deja Acces acordat anterior. Nicio acțiune; verificați conform capitolului 4.6.
Comanda nu este recunoscută Modul neîncărcat sau rol insuficient. Import-Module; verificați rolurile atribuite operatorului.
Mailboxul nu apare în Outlook Propagare în curs, AutoMapping dezactivat sau permisiune prin grup. Așteptați până la 60 de minute, reporniți Outlook sau adăugați manual.
Mesajul nu poate fi trimis din mailbox Doar Full Access acordat. Acordați Send As sau Send on Behalf (capitolele 4.4 – 4.5).
  1. BUNE PRACTICI
  • acordați doar permisiunile cerute explicit în tichet (principiul celui mai mic privilegiu);
  • documentați în tichet comanda rulată și rezultatul verificării din capitolul 4.6;
  • revizuiți trimestrial lista delegaților fiecărui shared mailbox și eliminați accesul persoanelor care au plecat sau și-au schimbat rolul;
  • urmăriți modificările de permisiuni în Microsoft Purview > Audit (operațiunile Add-MailboxPermission și Add-RecipientPermission);
  • nu atribuiți licență și nu activați autentificarea directă pentru shared mailbox decât dacă este necesar.

ANEXA A. SCRIPT COMPLET

Exemplu de utilizare: .\Add-SharedMailboxMember.ps1 -SharedMailbox office@domeniu.ro -User utilizator@domeniu.ro -SendAs

ADD-SHAREDMAILBOXMEMBER.PS1

#Requires -Modules ExchangeOnlineManagement

# Add-SharedMailboxMember.ps1 — StarTech Team / Departament SOC

param(

[Parameter(Mandatory)] [string] $SharedMailbox,   # ex. office@domeniu.ro

[Parameter(Mandatory)] [string] $User,            # ex. utilizator@domeniu.ro

[switch] $SendAs,

[switch] $SendOnBehalf,

[bool]   $AutoMapping = $true

)

 

# 1. Conectare (dacă nu există deja o sesiune activă)

if (-not (Get-ConnectionInformation)) { Connect-ExchangeOnline -ShowBanner:$false }

 

# 2. Validare obiecte

$mbx = Get-EXOMailbox -Identity $SharedMailbox -ErrorAction Stop

if ($mbx.RecipientTypeDetails -ne “SharedMailbox”) {

throw “$SharedMailbox nu este shared mailbox.” }

$rcp = Get-EXORecipient -Identity $User -ErrorAction Stop

Write-Host “Utilizator: $($rcp.PrimarySmtpAddress) [$($rcp.RecipientTypeDetails)]”

 

# 3. Full Access

Add-MailboxPermission -Identity $mbx.Identity -User $rcp.PrimarySmtpAddress `

-AccessRights FullAccess -InheritanceType All `

-AutoMapping $AutoMapping | Out-Null

 

# 4. Send As (opțional)

if ($SendAs) {

Add-RecipientPermission -Identity $mbx.Identity `

-Trustee $rcp.PrimarySmtpAddress `

-AccessRights SendAs -Confirm:$false | Out-Null }

 

# 5. Send on Behalf (opțional)

if ($SendOnBehalf) {

Set-Mailbox -Identity $mbx.Identity `

-GrantSendOnBehalfTo @{Add = $rcp.PrimarySmtpAddress} }

 

# 6. Raport de verificare

Get-EXOMailboxPermission -Identity $mbx.Identity |

Where-Object { $_.User -like “*$($rcp.Alias)*” } |

Format-Table User, AccessRights

Get-EXORecipientPermission -Identity $mbx.Identity `

-Trustee $rcp.PrimarySmtpAddress |

Format-Table Trustee, AccessRights

ANEXA B. SURSE OFICIALE

Subiect Link
Permisiuni pentru destinatari în Exchange Online Manage permissions for recipients
Conectare la Exchange Online PowerShell Connect to Exchange Online PowerShell
Add-MailboxPermission Referință cmdlet
Add-RecipientPermission Referință cmdlet
Permisiuni în medii hibride Delegated mailbox permissions in hybrid
Eliminarea AutoMapping Remove automapping for a shared mailbox

 

Tip solutie

Permanent

Voteaza

(6 din 12 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?