คำสั่ง Powershell ของ Exchange Online ที่มีประโยชน์ที่สุดที่คุณควรรู้
ยินดีต้อนรับสู่โพสต์ของเราเกี่ยวกับโมดูล PowerShell Exchange Online ที่มีประโยชน์ที่สุดที่คุณควรรู้! ในฐานะผู้ดูแลระบบ Exchange Online วิธีทั่วไปในการจัดการสภาพแวดล้อม Exchange ของคุณคือผ่านพอร์ทัลผู้ดูแลระบบหรือผ่าน PowerShell
การจัดการสภาพแวดล้อมของคุณด้วยพอร์ทัลผู้ดูแลระบบมักจะทำได้ช้าและยุ่งยาก โดยเฉพาะเมื่อใช้งานหลายบัญชี
การใช้ PowerShell แม้ว่าอาจดูยุ่งยากในช่วงแรก แต่ก็สามารถช่วยให้คุณปรับปรุงการใช้งาน การจัดการ หรือแม้แต่งานแก้ไขได้ มาดูคำสั่ง Exchange Online PowerShell ที่มีประโยชน์ที่สุด เพื่อช่วยคุณจัดการสภาพแวดล้อมของคุณ
เชื่อมต่อกับการแลกเปลี่ยนออนไลน์
ก่อนที่คุณจะสามารถจัดการ Exchange Online ด้วย PowerShell ได้ คุณจะต้องมี cmdlets ให้พร้อมใช้งานโดยการติดตั้ง Exchange Online Module
- เปิด PowerShell ในฐานะผู้ดูแลระบบ
2. เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งโมดูล Exchange Online Management
Install-Module -Name ExchangeOnlineManagement
สิ่งนี้จะติดตั้งโมดูลสำหรับผู้ใช้ทั้งหมดบนเวิร์กสเตชัน หากคุณต้องการติดตั้งสำหรับผู้ใช้ปัจจุบันเท่านั้น ให้ใช้คำสั่งต่อไปนี้:
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser3. ตอนนี้คุณพร้อมที่จะเชื่อมต่อกับ Exchange Online แล้ว รันคำสั่งต่อไปนี้:
Connect-ExchangeOnlineเมื่อหน้าต่างการรับรองความถูกต้องสมัยใหม่ของ Microsoft 365 ปรากฏขึ้น ให้ลงชื่อเข้าใช้ด้วยข้อมูลประจำตัวของคุณ
คุณสามารถลงชื่อเข้าใช้ด้วยบัญชีผู้ดูแลระบบส่วนกลาง ซึ่งจะมีสิทธิ์เข้าถึงคำสั่งทั้งหมด หรือหากคุณใช้การควบคุมการเข้าถึงตามบทบาท (RBAC) โปรดดูลิงก์ต่อไปนี้สำหรับการมอบหมายบทบาทและการอนุญาต https://docs.microsoft.com/en-us/exchange/permissions-exo/permissions-exo
ดูการตั้งค่ากล่องจดหมาย
เมื่อคุณเชื่อมต่อกับ Exchange Online ในเซสชัน PowerShell ของคุณแล้ว ความสนุกก็เริ่มต้นขึ้น! ตอนนี้เราจะแสดงคำสั่งที่เป็นประโยชน์เพื่อดูการตั้งค่ากล่องจดหมาย
- ดูรายการสรุปของกล่องจดหมายทั้งหมดในองค์กรของคุณ:
Get-Mailbox -ResultSize unlimited- หากคุณต้องการเลือกแอตทริบิวต์เฉพาะสำหรับแต่ละกล่องจดหมาย คุณสามารถใช้พารามิเตอร์ 'select':
Get-Mailbox -ResultSize unlimited | select Name, PrimarySmtpAddress- ดูข้อมูลเกี่ยวกับกล่องจดหมายของผู้ใช้เฉพาะ:
Get-Mailbox -Identity *user*- อีกครั้งในการเลือกแอตทริบิวต์เฉพาะสำหรับกล่องจดหมายของผู้ใช้ ให้ใช้พารามิเตอร์ 'select':
Get-Mailbox -Identity *user* | select Name,
PrimarySmtpAddress, EmailAddress- ดูสิทธิ์ในกล่องจดหมายเฉพาะ
#View all permissions on a specific mailbox
Get-MailboxPermission -Identity [email | FL
#View a specific users permissions on a mailbox
Get-MailboxPermission -Identity [email -User "daniel"แก้ไขการตั้งค่ากล่องจดหมาย
ตอนนี้เรารู้วิธีดูการตั้งค่ากล่องจดหมาย (ซึ่งสามารถใช้เพื่อตรวจสอบการเปลี่ยนแปลงที่เราทำต่อไป) ให้เราดูว่าเราสามารถแก้ไขการตั้งค่ากล่องจดหมายได้อย่างไร
คำสั่ง set-mailbox ใช้ในส่วนนี้เพื่อทำการเปลี่ยนแปลงกล่องจดหมายของคุณ
- ใช้คำสั่งด้านล่างเพื่อเพิ่มนามแฝงอีเมลเพิ่มเติมลงในกล่องจดหมายเฉพาะ ด้านล่างนี้ ฉันเพิ่มนามแฝง '[ป้องกันอีเมล]' ให้กับบัญชี '[ป้องกันอีเมล]'
#Add email address alias for single user
Set-Mailbox -Identity "[email " -EmailAddresses
@{add="[email "}- เพิ่มนามแฝงโดเมนเพิ่มเติมให้กับผู้ใช้ทั้งหมดในผู้เช่าของคุณ ด้านล่างนี้ ฉันเพิ่มชื่อแทนโดเมนของ 'ourcloudnetwork2.com' ให้กับผู้ใช้ทั้งหมดในผู้เช่าของฉัน
#Add email address alias for all users
foreach($user in $users){
Set-Mailbox $user.PrimarySmtpAddress -EmailAddresses @{add="$($user.Alias)@ourcloudnetwork2.com"}
}- เปลี่ยนที่อยู่ SMTP หลักของผู้ใช้
#Change users primary email address
Set-Mailbox -Identity [email -WindowsEmailAddress [email -MicrosoftOnlineServicesID [email - เปลี่ยนผู้ใช้ UPN (ชื่อผู้ใช้หลัก) ขอแนะนำว่าหากคุณเปลี่ยน UPN ของผู้ใช้ ที่อยู่ SMTP หลักควรตรงกัน
#Change users username
Set-MsolUserPrincipalName -UserPrincipalName "Old UPN" -NewUserPrincipalName "New UPN"- ตั้งค่าขนาดการส่งข้อความสูงสุดสำหรับผู้ใช้คนเดียวหรือผู้ใช้ทั้งหมด
#for a single user
Set-Mailbox -identity "[email " -MaxSendSize 2MB
#for all users
Get-Mailbox -ResultSize unlimited | Set-Mailbox -MaxSendSize 2MB- เปิดใช้งานการตรวจสอบกล่องจดหมายสำหรับกล่องจดหมายของผู้ใช้เฉพาะหรือกล่องจดหมายของผู้ใช้ทั้งหมด
#for a single UserMailbox
Set-Mailbox -Identity "[email " -AuditEnabled $true
#for all users
Get-Mailbox -ResultSize Unlimited -Filter "RecipientTypeDetails -eq 'UserMailbox'" | Select PrimarySmtpAddress | ForEach {Set-Mailbox -Identity $_.PrimarySmtpAddress -AuditEnabled $true}สร้างรายงานกล่องจดหมาย
เมื่อสร้างรายงานผ่าน PowerShell มีแนวโน้มว่าผลลัพธ์จะต้องได้รับการบันทึกในรูปแบบที่จับต้องได้ เพื่อให้สามารถประมวลผลโดยบุคคลที่สามหรือดัดแปลงให้เป็นสิ่งที่มีความหมายทางสายตามากขึ้น
ขั้นแรก เมื่อสร้างผลลัพธ์ใน PowerShell เราสามารถส่งออกผลลัพธ์เป็นไฟล์ CSV ได้ ไฟล์ CSV นี้สามารถใช้งานได้ทุกวิถีทางที่จำเป็น เราทำได้โดยการเพิ่ม PIPE หลังคำสั่งของเรา และใช้ cmdlet การส่งออก csv เหมือนด้านล่าง ในสคริปต์ที่มีรายละเอียดมากขึ้น จะต้องใช้ cmdlet การส่งออก csv อย่างมีกลยุทธ์มากขึ้น
#Export data to csv
| Export-Csv results.csv
#To export without the first line containing type information.
| Export-Csv results.csv -NoTypeInformation- ระบุผู้รับทั้งหมด รวมถึงประเภทกล่องจดหมาย ที่อยู่อีเมลหลัก และที่อยู่นามแฝง
Get-Mailbox | Select-Object DisplayName,RecipientType, PrimarySmtpAddress, EmailAddresses | Export-Csv results.csv- แสดงรายการกลุ่มการแจกจ่ายทั้งหมดด้วยชื่อที่แสดง ที่อยู่อีเมลหลัก และเจ้าของกลุ่ม
Get-DistributionGroup -ResultSize unlimited | select displayname, primarysmtpaddress, managedby | Export-csv alldistributiongroups.csv- แสดงรายการกลุ่มการแจกจ่ายทั้งหมดและสมาชิก
$Result=@()
$groups = Get-DistributionGroup -ResultSize Unlimited
$totalmbx = $groups.Count
$i = 1
$groups | ForEach-Object {
Write-Progress -activity "Processing $_.DisplayName" -status "$i out of $totalmbx completed"
$group = $_
Get-DistributionGroupMember -Identity $group.Name -ResultSize Unlimited | ForEach-Object {
$member = $_
$Result += New-Object PSObject -property @{
GroupName = $group.DisplayName
Member = $member.Name
EmailAddress = $member.PrimarySMTPAddress
RecipientType= $member.RecipientType
}}
$i++
}
$Result | Export-CSV "All-Distribution-Group-Members.csv" -NoTypeInformation -Encoding UTF8- แสดงรายการสิทธิ์ของกล่องจดหมายทั้งหมดสำหรับกล่องจดหมายและประเภททั้งหมด
Get-Mailbox -resultsize unlimited | Get-MailboxPermission | Select Identity, User, Deny, AccessRights, IsInherited | Export-csv mailboxpermissions.csvมอบสิทธิ์กล่องจดหมายและโฟลเดอร์
ที่นี่เราจะแสดงวิธีการให้สิทธิ์ผู้รับมอบสิทธิ์แก่กล่องจดหมายและโฟลเดอร์ด้วย PowerShell
- ให้ผู้ใช้ 1 เข้าถึงกล่องจดหมายของผู้ใช้ 2 ได้อย่างเต็มที่ สิทธิ์อื่นๆ ได้แก่: SendAs และ SendOnBehalf
Add-MailboxPermission -Identity "user1" -User "user2" -AccessRights FullAccess -InheritanceType All
- ให้ผู้ใช้ 1 เข้าถึงกล่องจดหมายทั้งหมดในองค์กรได้อย่างเต็มที่
Get-Mailbox -ResultSize unlimited -Filter "(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')" | Add-MailboxPermission -User user1 -AccessRights FullAccess -InheritanceType All- ให้ผู้ใช้ 1 เข้าถึงปฏิทินของผู้ใช้ 2 พร้อมสิทธิ์ในการแก้ไข สิทธิ์อื่นๆ ได้แก่: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderContact, FolderOwner, FolderVisible, ReadItems
Add-MailboxFolderPermission -Identity [email :\calendar -user [email -AccessRights Editor
- ให้ผู้ใช้ 1 เข้าถึงโฟลเดอร์ Finance ในกล่องจดหมายของผู้ใช้ 2
Add-MailboxFolderPermission -Identity [email :\Finance -User [email -AccessRights Owner- ให้สิทธิ์ SendAs แก่ผู้ใช้ 1 ในกล่องจดหมาย [ป้องกันอีเมล] ผู้ใช้ 1 จะสามารถส่งอีเมลในรูปแบบ [ป้องกันอีเมล] แต่ไม่สามารถดูกล่องจดหมายได้
Add-RecipientPermission "Marketing" -AccessRights SendAs -Trustee "User 1"
ขอขอบคุณที่สละเวลาอ่านคำสั่ง Exchange Online PowerShell ที่มีประโยชน์ที่สุดของฉันเพื่อช่วยคุณจัดการและรักษาสภาพแวดล้อมของคุณ หากคุณคิดว่าฉันควรเพิ่มอะไรอีกโปรดแสดงความคิดเห็นด้านล่าง!