Weboldal keresés

E-mail címek hozzáadása PowerShell használatával – Tömeges mód | Office 365 | 4. rész #13


A jelenlegi cikk az előző cikk állítása, amelyben áttekintjük az e-mail cím hozzáadásának feladatát az Exchange Online-címzettekhez a PowerShell segítségével. Ennek a cikknek a középpontjában egy további e-mail-cím tömeges módban történő hozzáadásának a végrehajtása áll.

E-mail címek hozzáadása tömeges módban

A „tömeges művelet” figyelemre méltó előnye, hogy „egyetlen kattintással” egyszerre több „objektumot”, például Exchange Online-címzettet is frissíthetünk anélkül, hogy minden címzettet külön kellene megszólítani.

Ugyanakkor ez a „figyelemre méltó előny” nagyon könnyen „figyelemreméltó hátrány” lesz.

Ha a „Tömeges művelet” nincs tesztelve és ellenőrizve, mielőtt éles környezetben futtatnánk, ha a PowerShell tömeges parancs nem megfelelően lett implementálva, az jelentős károkat okozhat szervezeti környezetünkben!

A probléma az, hogy amikor a „nehéz eszközöket”, például a tömeges műveleteket végezzük, azt javasoljuk, hogy pontosan megértsük, mit tesz a PowerShell tömeges parancsa.

Azt javaslom, hogy mielőtt tömeges műveleteket hajtana végre, próbálja meg tesztelni a „Tömeges műveletet” „Lab” környezetben, vagy használja a tömeges művelet végrehajtásához „tesztfelhasználókon”.

Miután megbizonyosodtunk arról, hogy a PowerShell tömeges parancs megfelelően végrehajtja a műveletet, és lefuttattuk a szükséges tömeges parancsot, fontos, hogy ellenőrizzük az „eredményeket” úgy, hogy ellenőrizzük, hogy az érintett „objektumok” (pl. Exchange Online postafiókok), és ott megfelelően voltak konfigurálva.

A hasznos eszköz - Whatif

Egy nagyon hasznos és hatékony PowerShell-beállítás, amelyet a „Tömeges parancs” használatakor használhatunk, az opció (a paraméter) - Whatif.

A Whatif opció használatával szimulálhatjuk azt a forgatókönyvet, hogy „mi történt volna”, ha futtatjuk a „Tömeges PowerShell-parancsot”, anélkül, hogy bármilyen változtatást végrehajtanánk a környezetünkön.

Azt javaslom, hogy a lehető legtöbbet használja a Whatif opciót, mielőtt „leütné” azt a billentyűt, amely végrehajtja a Bulk PowerShell parancsot, amely több tízszáz vagy akár több ezer postafiókot érinthet ugyanakkor.

A következő példákban egy „tömeges parancsot” futtatunk, amely az összes meglévő Exchange Online-postafiókra „hatással” jár, és minden Exchange-címzetthez hozzáad egy további e-mail címet.

A tömeges PowerShell-parancs „megjósolásához” hozzáadjuk a Whatif PowerShell-paramétert.

Példánkban láthatjuk, hogy a „tömeges művelet ” sikeresen fut egy adott Exchange-postafiókon, például „Angelina”, „Aretha” és „Beyonce” .”

Ugyanakkor láthatjuk, hogy a tömeges művelettel nem sikerült frissíteni néhány Exchange-címzettet.

A Mi lenne, haeredményeket tekintve láthatjuk, hogy a tömeges művelet nem tudott frissíteni bizonyos Exchange-postafiókokat, például Adele postafiókját.

PS C:\> $AllMailboxes = Get-Mailbox -ResultSize Unlimited
Foreach ($Mailbox in $AllMailboxes)
{
$NewAddress = $Mailbox. UserPrincipalName + "@o365pilot.com" # Create a new string that add a NEW E-mail address with the NEW domain suffix
$Mailbox.UserPrincipalName += $NewAddress # “Collect” all existing E-mail addresses + add the NEW E-mail address as an additional E-mail address (existing E-mail address will not be removed).
Set-Mailbox -Identity $Mailbox.Alias -EmailAddresses $Mailbox.EmailAddresses -whatif
}
The operation on mailbox "Adele" failed because it's out of the current user's write scope. The action 'Set-Mailbox', 'EmailAddresses', can't be performed on the object 'Adele' because the object is being
synchronized from your on-premises organization. This action should be performed on the object in your on-premises organization.

+ CategoryInfo : InvalidOperation: (Adele:ADObjectId) [Set-Mailbox], InvalidOperationException

+ FullyQualifiedErrorId : [Server=DB6PR0501MB2069,RequestId=25c4f399-2412-41c2-9a77-41af5911613e,TimeStamp=1/9/2017 11:43:30 AM] [FailureCategory=Cmdlet-InvalidOperationException] 4728449,Microsoft.Ex
change.Management.RecipientTasks.SetMailbox

+ PSComputerName : outlook.office365.com
The operation couldn't be performed because 'Alicia Keys' matches multiple entries.

+ CategoryInfo : NotSpecified: (:) [Set-Mailbox], ManagementObjectAmbiguousException

+ FullyQualifiedErrorId : [Server=DB6PR0501MB2069,RequestId=25c4f399-2412-41c2-9a77-41af5911613e,TimeStamp=1/9/2017 11:43:31 AM] [FailureCategory=Cmdlet-ManagementObjectAmbiguousException] 6E7A870C,Mi
crosoft.Exchange.Management.RecipientTasks.SetMailbox

+ PSComputerName : outlook.office365.com

What if: Setting mailbox "Angelina".
What if: Setting mailbox "Aretha".
What if: Setting mailbox "Beatles".
What if: Setting mailbox "Beyonce".

Sajátos forgatókönyvünkben a PowerShell parancs nem tudja frissíteni Adele postafiókját, mert az Adele felhasználói fiók „Szinkronizált felhasználói fióknak ” minősül, amelyet az Exchange Online infrastruktúrával szinkronizáltak az On-Premise Active szolgáltatásból. Könyvtár.

Az ilyen típusú forgatókönyvekben a szükséges „tömeges műveletet” a helyszíni környezetben (On-Premise Active Directory vagy Exchange helyszíni) kell futtatnunk az Office 365 infrastruktúra helyett.

A címtár-szinkronizálási környezetről további információt a cikkben olvashat: E-mail címek hozzáadása a PowerShell segítségével | Office 365 | 3. rész #13.

Munka tesztpostafiókokkal (labor postafiókok)

Amikor „tömeges folyamatot” valósítunk meg, egy „objektumcsoport”, például Exchange Online postafiókok futtatása.

A következő részben azt szeretném áttekinteni, hogy egy adott tömeges művelet teszteléséhez milyen fontos szükség van egy „pilot Exchange Online postafiók” létrehozására, amelyet tesztpostafiókként használhatunk.

A tömeges parancs hatásának teszteléséhez ajánlott egy „Exchange Online postafiókok tesztelése” létrehozása, amely a valódi éles objektumokat reprezentáló „tömbként” fog szolgálni.

Technikailag sok módszer létezik, amellyel tömböt hozhatunk létre.

Példánkban „megkülönböztetjük” azokat az Exchange Online postafiókokat, amelyek „tesztpostafiókként” fognak szolgálni, úgy, hogy speciális karakterrel jelöljük meg őket.

Az Exchange Online-postafiókok a többi postafióktól való megkülönböztetése érdekében mindegyik „tesztpostafiókhoz” hozzáadunk egy egyéni attribútumot a CustomAttribute1 nevű mező használatával.

A példánkban használt szöveges karakterlánc a TestMailbox.

1. lépés - A tömb létrehozása

Egy olyan tömb létrehozásához, amely tartalmazza az összes olyan „teszt Exchange Online postafiókot”, amelynek CustomAttribute1-ben megvan a konkrét érték, a Where utasítást használjuk, amelyben csak a megtekintést kérjük. Exchange Online postafiókok, amelyek CustomAttribute1 mezőjének értéke TestMailbox.

Példa a PowerShell parancsra:

Get-Mailbox | Where {$_.CustomAttribute1 -eq 'TestMailbox'}

2. lépés - Határozzon meg egy változót, amely „tárolja” a tömb tagjait.

A tömbben lévő „tagok” manipulálásához definiálunk egy változót, amely „logikai tárolóként” szolgál, amely a tömb tagjait tárolja.

Példánkban egy - $AllMailboxes nevű változót definiálunk, amely a PowerShell-szűrő keresési lekérdezéséből származó eredményeket tárolja.

Példa a PowerShell parancsra:

$AllMailboxes = Get-Mailbox | Where {$_.CustomAttribute1 -eq 'TestMailbox'}

Később egy PowerShell tömeges parancsot fogunk használni, amely „hozzáfér” a létrehozó változóban tárolt információkhoz, és „csinál valamit” a tömb minden egyes tagjával.

E-mail cím tömeges hozzáadása a ForEach utasítással

A következő szakaszokban áttekintjük az ÚJ e-mail cím tömeges hozzáadásának folyamatát a meglévő Exchange Online-címzettekhez, PowerShell-szkript segítségével.

A „tömeges folyamat” néhány „PowerShell-komponens” bevonásával valósul meg, például - a PowerShell ForEach és Where utasításainak használatával, olyan változók létrehozásával, amelyek tárolják a tömbtagot és minden egyes tag PowerShell-parancsmagok, amelyek információkat importálnak egy CSV-fájlból, változókat hoznak létre és így tovább.

A következő részben alapvető magyarázatot adok az általunk használt PowerShell-parancs szintaxisról.

Ha részletesebb információkat szeretne kapni a ForEach utasítási ciklus témájával és a „változók” PowerShell-környezetben való használatával kapcsolatban, olvassa el a következő cikkeket:

  • Hurok létrehozása egy tömbön keresztül a „ForEach” PowerShell parancs használatával | Alapvető bevezetés | 1. rész #2
  • Hurok létrehozása tömbön keresztül A „ForEach” utasítás és a | változók használatával PowerShell környezet| 2. rész #2

Ha további információkat szeretne olvasni a PowerShell Where szűrő használatáról szűrt keresési lekérdezés létrehozásához, olvassa el a következő cikkeket:

  • A PowerShell használata Exchange Online-objektumok megtekintéséhez | 3. rész #3
  • A PowerShell használata az Office 365 objektumok megtekintéséhez | 2. rész #3

További e-mail cím (Alias) hozzáadása ÚJ Domainnév utótaggal az összes postafiók-címzetthez | Tömeges mód

A következő részben áttekintjük a PowerShell tömeges szkript használatának folyamatát, amely elvégzi egy ÚJ alias e-mail cím hozzáadását, amely az ÚJ tartománynév utótagot használja minden Exchange Online-címzettünk számára.

  • Cégünk a nyilvános domain nevet használja - o365info.com
  • Cégünk vásárolt egy további domain nevet - o365pilot.com

Jelenleg minden vállalati felhasználónak van egy e-mail címe, amely a domain
név utótagját használja - „o365info.com ”.

Az alábbi feladatok végrehajtására kértünk fel bennünket:

  • Adjon hozzá az összes vállalati felhasználóhoz (Exchange Online címzettekhez) egy további e-mail címet (proxy e-mail cím), amely tartalmazza az „ÚJ domainnév” utótagot - „o365pilot.com“.
  • Az ÚJ e-mail címek „Alias részének” (bal oldali részének) meg kell egyeznie azzal a meglévő Aliasszal, amelyet az Exchange Online címzettek elsődleges e-mail címére használnak.
  • Az ÚJ e-mail cím nem váltja fel a meglévő elsődleges e-mail címet, hanem egy további e-mail címként (Alias, Proxy E-mail cím) lesz hozzáadva.
  • Az Exchange Online-címzettek összes meglévő alias e-mail címe és egyéb címe, például SIP-címe megőrződik.

Az alábbi ábrán láthatjuk a szervezet e-mail címének felépítését és a szükséges eredményeket:

Például,

  • A John nevű felhasználó jelenlegi elsődleges e-mail címe: John@o365info.com
  • Egy további e-mail címet (proxy e-mail címet) szeretnénk hozzáadni a János nevű címzetthez.
  • A további e-mail cím a következő e-mail cím lesz - „John@o365pilot.com ”.

A következő diagramon láthatunk egy példát a kért eredményre egy adott Exchange Online-címzetthez - János.

A PowerShell parancsstruktúra

Ahhoz, hogy a szükséges frissítést az Exchange Online összes címzettjénél le tudjuk futtatni, PowerShell ForEach utasítást fogunk használni (változók kombinációjával), amely az összes meglévő Exchange Online postafiókon keresztül hurkol, és futtatja a szükséges feladat - új e-mail alias hozzáadása az Exchange Online postafiókok mindegyikéhez.

1. lépés: A $AllMailboxes nevű változót használjuk az összes meglévő Exchange Online postafiók információinak tárolására.

2. lépés: Meghatározunk egy $NewAddress nevű változót, amely az ÚJ e-mail cím tárolására jön létre. Az ÚJ e-mail cím a meglévő Exchange címzett Alias ($Mailbox.Alias) + az „ÚJ domainnév utótag @o365pilot.com” karakterlánc kombinációjával jön létre.

3. lépés: Létrehozunk egy „tömböt”, amely a címzett összes meglévő e-mail címét + az új e-mail címet tárolja a következő módon: $Mailbox.EmailAddresses += $NewAddress
Ezt a lépést azért használjuk, hogy elkerüljük azt a forgatókönyvet, amelyben a meglévő e-mail cím törlődik, és helyére az ÚJ E-mail cím kerül.

4. lépés: Megkérjük a PowerShellt, hogy „állítson be” egy ÚJ e-mail címet (Alias E-mail cím) minden egyes címzett számára az új e-mail cím (az ÚJ e-mail) hozzáadásával. címet az o365pilot.com domain név utótaggal) a meglévő e-mail címek tömbjére.

$Domainsuffix = Read-Host "Type the name of the Domain name suffix"
$AllMailboxes = Get-Mailbox -ResultSize Unlimited
Foreach ($Mailbox in $AllMailboxes)
{
# Creating NEW E-mail address that contracted in the following way: Take the existing recipient Alias name + use the NEW Domain name as a domain suffix + “Bind” the Alias name + the NEW Domain name suffix.
$NewAddress = $Mailbox.Alias + "@$Domainsuffix"
# “Store” all existing E-mail addresses + add the NEW E-mail address as an additional E-mail address.
$Mailbox.EmailAddresses += $NewAddress
# Assign the NEW E-mail address to the existing Exchange Online recipient
Set-Mailbox -Identity $Mailbox.Alias -EmailAddresses $Mailbox.EmailAddresses #-whatif
}

Játssz a címzetteket meghatározó változóval „Array”

Az Exchange Online „címzettek tömbjét” $AllMailboxes meghatározó változó nagyon „rugalmas”

Számos különböző típusú Exchange Online címzettet definiálhatunk tagként vagy „tömbként”.

1. lehetőség

Határozzon meg egy forgatókönyvet, amelyben azt szeretnénk, hogy a tömeges parancs hozzáadjon egy további e-mail címet az összes „Exchange Online postafiókhoz. ”

Ebben az esetben a Tömeges parancs hozzáadja a további e-mail címet az Exchange Online postafiók különféle címzettjeihez, például - szobai postafiókhoz, megosztott postafiókhoz és felhasználói postafiókhoz.

$AllMailboxes = Get-Mailbox -ResultSize Unlimited

2. lehetőség

Határozzon meg egy forgatókönyvet, amelyben azt szeretnénk, hogy a tömeges parancs csak további e-mail címeket adjon hozzá az „Online felhasználói postafiókok cseréjéhez. ”

$AllMailboxes = Get-MailBox -Filter '(RecipientTypeDetails -eq "UserMailbox")'

3. lehetőség

Határozzon meg egy forgatókönyvet, amelyben azt szeretnénk, hogy a tömeges parancs csak az összes meglévő Exchange Online-címzetthez adjon hozzá egy további e-mail címet.

Ebben a forgatókönyvben a Tömeges parancs egy további e-mail címet ad hozzá az Exchange Online különféle típusú címzettjeihez, például csoportokhoz, levelezési névjegyekhez, postafiók címzettjéhez stb.

$AllMailboxes = Get-recipient -ResultSize Unlimited

4. lehetőség

Határozzon meg egy forgatókönyvet, amelyben azt szeretnénk, hogy a tömeges parancs egy további e-mail címet adjon hozzá az Exchange Online címzettekhez, az Exchange on-Premises környezetből szinkronizált címzetteken kívül.

$AllMailboxes = Get-recipient -ResultSize Unlimited | Where {$_.Capabilities -nq "MasteredOnPremise"}

5. lehetőség

Határozzon meg egy forgatókönyvet, amelyben azt szeretnénk, hogy a tömeges parancs egy további e-mail címet adjon hozzá az Exchange Online címzettjeinek Exchange Online postafiókjaihoz, amelyek „Teszt postafiókként” vannak definiálva. ”

Ebben az esetben a tömeges parancs csak azokat az Exchange Online postaládákat frissíti, amelyek customattribute1 értéke „TestMailbox. ”

$AllMailboxes = Get-Mailbox | Where {$_.CustomAttribute1 -eq 'TestMailbox'}

Cserélje ki az Elsődleges e-mail cím Domainnév utótagját egy ÚJ Domainnév utótagra | Tömeges mód

A következő részben áttekintjük a PowerShell tömeges szkript használatának folyamatát, amely a következő feladatot látja el: - a meglévő elsődleges e-mail cím lecserélése egy ÚJ elsődleges e-mail címre, amely más domain név utótagot használ.

  • Cégünk a nyilvános domain nevet használja - o365info.com
  • Cégünk vásárolt egy további domain nevet - o365pilot.com

Jelenleg minden vállalati felhasználó rendelkezik egy e-mail címmel, amely a
domainnév utótagot használja - o365info.com.

Az alábbi feladatok végrehajtására kértünk fel bennünket:

  • Cserélje ki a com domain nevet használó jelenlegi elsődleges e-mail címet egy ÚJ elsődleges e-mail címre, amely a domain név utótagját használja - o365pilot.com
  • Az Exchange címzett álneve (az e-mail cím jobb oldali része) változatlan marad. Más szavakkal, szeretnénk megőrizni a meglévő Alias nevet a jelenlegi elsődleges e-mail címből, és a „bal oldali részt” (domainnév utótag) lecserélni egy ÚJ domain név utótagra.
  • A korábbi elsődleges e-mail cím nem törlődik, hanem alias e-mail címként
    (további e-mail címként) kerül mentésre.
  • A címzettek összes meglévő Alias E-mail címe és egyéb címe, például SIP-címe megmarad.

Az alábbi ábrán láthatjuk a szervezet e-mail címének felépítését és a szükséges eredményeket:

A következő diagramon láthatunk egy példát a - János nevű adott Exchange Online-címzett kért eredményére.

A PowerShell parancsstruktúra

Az ebben a forgatókönyvben használt PowerShell-parancs hasonló az előző forgatókönyvben használt PowerShell-parancshoz.

A fő különbség az, hogy ebben az esetben egy további PowerShell-parancsot adunk hozzá, amely beállítja
az egyes címzettek elsődleges e-mail címét az ÚJ e-mail cím használatára.

Példánkban a meglévő elsődleges e-mail címet szeretnénk lecserélni,
az „o365pilot.com” domain utótag használatával.

Állítsa be az elsődleges e-mail címet

Az elsődleges e-mail cím beállításához a PowerShell WindowsEmailAddres paraméterét használjuk.

A forgatókönyvünkben használt PowerShell szintaxis a következő:

Set-Mailbox -Identity $Mailbox.Alias -WindowsEmailAddress $NewAddress

Az „ÚJ e-mail cím” szerkezet létrehozása

Az új e-mail cím szükséges elnevezési konvenciójának létrehozásához ugyanazt a „trükköt
használjuk, mint az előző forgatókönyvben.

Létrehozunk egy változót, amely ÚJ e-mail címet hoz létre.
Az e-mail cím „bal oldali része” (az „Alias ”) abból a meglévő Aliasból származik, amellyel minden Exchange címzett rendelkezik.

A PowerShell a meglévő Alias-t az ÚJ domainnév utótaghoz (az e-mail cím jobb oldali részéhez) „köti”.

Az általunk használt szintaxis: $NewAddress=$Mailbox.Alias + "@o365pilot.com"

Az általunk használt PowerShell-szkript szintaxisa a következő:

$AllMailboxes = Get-Mailbox -ResultSize Unlimited
Foreach ($Mailbox in $AllMailboxes)
{
# Creating NEW E-mail address that contracted in the following way: Take the existing recipient Alias name + use the NEW Domain name as a domain suffix + “Bind” the Alias name + the NEW Domain name suffix.
$NewAddress = $Mailbox.Alias + "@o365pilot.com"
Set-Mailbox -Identity $Mailbox.Alias -WindowsEmailAddress $NewAddress #-whatif
}

Az aktuális cikksorozat következő cikke

E-mail címek hozzáadása PowerShell segítségével - Importálás CSV-fájlból | Tömeges mód | Office 365 | 5. rész #13

Kapcsolódó cikkek