ค้นหาเว็บไซต์

คำสั่ง Powershell ของ Exchange Online ที่มีประโยชน์ที่สุดที่คุณควรรู้


ยินดีต้อนรับสู่โพสต์ของเราเกี่ยวกับโมดูล PowerShell Exchange Online ที่มีประโยชน์ที่สุดที่คุณควรรู้! ในฐานะผู้ดูแลระบบ Exchange Online วิธีทั่วไปในการจัดการสภาพแวดล้อม Exchange ของคุณคือผ่านพอร์ทัลผู้ดูแลระบบหรือผ่าน PowerShell

การจัดการสภาพแวดล้อมของคุณด้วยพอร์ทัลผู้ดูแลระบบมักจะทำได้ช้าและยุ่งยาก โดยเฉพาะเมื่อใช้งานหลายบัญชี

การใช้ PowerShell แม้ว่าอาจดูยุ่งยากในช่วงแรก แต่ก็สามารถช่วยให้คุณปรับปรุงการใช้งาน การจัดการ หรือแม้แต่งานแก้ไขได้ มาดูคำสั่ง Exchange Online PowerShell ที่มีประโยชน์ที่สุด เพื่อช่วยคุณจัดการสภาพแวดล้อมของคุณ

เชื่อมต่อกับการแลกเปลี่ยนออนไลน์

ก่อนที่คุณจะสามารถจัดการ Exchange Online ด้วย PowerShell ได้ คุณจะต้องมี cmdlets ให้พร้อมใช้งานโดยการติดตั้ง Exchange Online Module

  1. เปิด PowerShell ในฐานะผู้ดูแลระบบ

2. เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งโมดูล Exchange Online Management

Install-Module -Name ExchangeOnlineManagement

สิ่งนี้จะติดตั้งโมดูลสำหรับผู้ใช้ทั้งหมดบนเวิร์กสเตชัน หากคุณต้องการติดตั้งสำหรับผู้ใช้ปัจจุบันเท่านั้น ให้ใช้คำสั่งต่อไปนี้:

Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser

3. ตอนนี้คุณพร้อมที่จะเชื่อมต่อกับ 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 ที่มีประโยชน์ที่สุดของฉันเพื่อช่วยคุณจัดการและรักษาสภาพแวดล้อมของคุณ หากคุณคิดว่าฉันควรเพิ่มอะไรอีกโปรดแสดงความคิดเห็นด้านล่าง!

บทความที่เกี่ยวข้อง