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

สิทธิ์การเข้าถึงแบบเต็ม | การอนุญาตกล่องจดหมายเข้าถึงแบบเต็ม - ทุกสิ่งที่คุณอยากรู้มาโดยตลอด แต่กลัวที่จะถามตอนที่ 3/3 .com


นี่เป็นบทความสุดท้ายในชุดบทความสามบทความที่เกี่ยวข้องกับการใช้งานและการใช้สิทธิ์กล่องจดหมายการเข้าถึงแบบเต็มในสภาพแวดล้อม Office 365

บทความนี้ประกอบด้วยสองส่วน:

  1. การแสดงสิทธิ์ของกล่องจดหมาย
    ในส่วนนี้ เราจะตรวจสอบคำสั่ง PowerShell พื้นฐานสำหรับการแสดงสิทธิ์ของกล่องจดหมาย และสาธิตการปรับปรุงบางอย่างที่จะช่วยให้เรา "ล้าง" ข้อมูลที่ไม่จำเป็น
  1. การลบสิทธิ์ของกล่องจดหมาย
    ไวยากรณ์คำสั่ง PowerShell แบบตรรกะสำหรับ "การลบสิทธิ์ของกล่องจดหมาย" นั้นเหมือนกับไวยากรณ์ของ PowerShell ที่เราใช้สำหรับการเพิ่มสิทธิ์ของกล่องจดหมาย แม้จะมีข้อเท็จจริงดังกล่าว สิ่งสำคัญสำหรับฉันคือต้องตรวจสอบสถานการณ์ทั่วไปบางอย่างที่เกี่ยวข้องกับการดำเนินการลบสิทธิ์กล่องจดหมายของการเข้าถึงแบบเต็ม

สิทธิ์การเข้าถึงกล่องจดหมายแบบเต็ม | บทความซีรีส์

ชุดบทความสิทธิ์กล่องจดหมายการเข้าถึงแบบเต็มประกอบด้วยบทความสามบทความต่อไปนี้:

  1. สิทธิ์กล่องจดหมายเข้าถึงแบบเต็ม - ส่วนที่ 1/3
  2. สิทธิ์กล่องจดหมายเข้าถึงแบบเต็ม - ส่วนที่ 2/3
  3. การอนุญาตกล่องจดหมายเข้าถึงแบบเต็ม - ตอนที่ 3/3 (บทความนี้)

ส่วนที่ 1 แสดงสิทธิ์กล่องจดหมาย

เมื่อเราใช้คำสั่ง PowerShell พื้นฐานสำหรับการแสดงสิทธิ์ของกล่องจดหมายในสภาพแวดล้อม Office 365 (Exchange Online) เราจะจัดการกับปัญหาต่างๆ:

  1. ข้อมูลที่ไม่เกี่ยวข้อง
    ผลลัพธ์ที่จะแสดงจะรวมรายละเอียดเพิ่มเติมเกี่ยวกับการอนุญาตที่ผู้ใช้เฉพาะมีในกล่องจดหมายของเขาและข้อมูลเพิ่มเติมเกี่ยวกับกลุ่มระบบที่มีอยู่แล้วภายในที่มีสิทธิ์ในกล่องจดหมายของผู้ใช้แต่ละกล่อง
  2. รูปแบบชื่อผู้ใช้
    เมื่อเราแสดงข้อมูลเกี่ยวกับการอนุญาตกล่องจดหมาย ข้อมูลเกี่ยวกับชื่อผู้ใช้ที่แสดงโดยใช้ชื่อผู้ใช้ AD ในสภาพแวดล้อม Office 365 (Exchange Online) ชื่อที่แสดงของผู้ใช้จะแตกต่างจากชื่อที่แสดงของผู้ใช้มาตรฐานหรือนามแฝงของกล่องจดหมาย บางครั้งผลลัพธ์อาจอ่านหรือเข้าใจได้ยาก เนื่องจากไม่ใช่เรื่องง่ายที่จะเข้าใจ "ชื่อผู้ใช้ AD แปลก ๆ" เทียบกับแบบแผนที่เรารู้จัก เช่น การอ้างอิงผู้ใช้ด้วยชื่อที่แสดงหรือชื่อนามแฝง

การใช้จอแสดงผลเริ่มต้นสำหรับการแสดงการอนุญาตกล่องจดหมาย

PowerShell cmdlet ที่เราใช้สำหรับแสดงสิทธิ์ของกล่องจดหมายคือ Get-MailboxPermission

ตัวอย่างเช่น: หากต้องการแสดงสิทธิ์กล่องจดหมาย Full Access ที่ผู้ใช้ (หรือกลุ่ม) มีในกล่องจดหมาย John's เราสามารถใช้คำสั่ง PowerShell:

Get-MailboxPermission "John"

ผลลัพธ์จะแสดงในภาพหน้าจอด้านล่าง

ในทางเทคนิคแล้ว เราได้รับผลลัพธ์ที่ต้องการ แต่หากเรามองให้ลึกลงไปในผลลัพธ์ที่แสดงบนคอนโซล PowerShell เราก็สามารถรับรู้ "ปัญหา" บางอย่างได้:

คอลัมน์ผู้ใช้

ภายใต้ส่วนหัวชื่อ User เราจะเห็นข้อมูลเกี่ยวกับ “ออบเจ็กต์” มากมาย เช่น กลุ่มระบบในตัวที่มีสิทธิ์การเข้าถึงแบบเต็มไปยังกล่องจดหมายของ John และผู้ใช้รายอื่น ข้อมูลเกี่ยวกับ "วัตถุ" ที่มีสิทธิ์กล่องจดหมายไม่ชัดเจนนักเนื่องจากเหตุผลสี่ประการ:

  1. คอลัมน์ผู้ใช้ไม่กว้างพอ และด้วยเหตุนี้ ชื่อผู้ใช้ส่วนสำคัญจึงถูก "ลบออก"
  2. ข้อมูลบนออบเจ็กต์ที่มีสิทธิ์กล่องจดหมายประกอบด้วยข้อมูลที่ไม่เกี่ยวข้องมากมายเกี่ยวกับกลุ่มระบบที่มีอยู่แล้วภายใน ข้อมูลเกี่ยวกับเงินบำนาญที่ผู้ใช้มีในกล่องจดหมายของเขา ฯลฯ
  3. ชื่อของผู้ใช้ที่มีสิทธิ์ในกล่องจดหมายจะแสดงขึ้นโดยใช้ชื่อผู้ใช้ Active Directory ในสภาพแวดล้อม Office 365 ชื่อผู้ใช้ Active Directory จะแตกต่างจากนามแฝงผู้ใช้มาตรฐานหรือชื่อที่แสดง
  4. คำนำหน้าชื่อผู้ใช้คือชื่อเซิร์ฟเวอร์ (ข้อมูลที่ไม่เป็นประโยชน์)

นอกจากนี้ การแสดงผลเริ่มต้นยังมีคอลัมน์ เช่น IsInherited และ Deny (หมายเลข 2) โดยส่วนใหญ่แล้วข้อมูลนี้ก็ไม่เกี่ยวข้องเช่นกัน

ปรับผลลัพธ์ของการอนุญาตกล่องจดหมายที่แสดงให้เหมาะสม

ขั้นตอนที่ 1 - ล้างคอลัมน์ที่ไม่จำเป็น

ในขั้นตอนแรก เราจะลบคอลัมน์ที่ไม่เกี่ยวข้องออกโดยใช้พารามิเตอร์ FL (รายการไฟล์) ตัวเลือก FL ช่วยให้เราระบุคอลัมน์ที่แน่นอนได้ (โดยการระบุชื่อส่วนหัวของคอลัมน์) ในตัวอย่างของเรา เราต้องการแสดงเฉพาะคอลัมน์ ข้อมูลประจำตัว, ผู้ใช้, สิทธิ์การเข้าถึง

ไวยากรณ์คำสั่ง PowerShell:

Get-MailboxPermission "John" | FT Identity,User,AccessRights

ในภาพหน้าจอ เราจะเห็นว่าคอลัมน์ “ผู้ใช้” แสดงได้ชัดเจนยิ่งขึ้น แต่เรายังคงพบปัญหาอยู่บ้าง: มีข้อมูลที่ไม่เกี่ยวข้องจำนวนมาก เช่น ข้อมูลเกี่ยวกับกลุ่มระบบในตัวที่มีสิทธิ์เข้าถึงแบบเต็ม สิทธิ์ในกล่องจดหมายของ John และข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ที่มีสิทธิ์การเข้าถึงแบบเต็ม เช่น บัญชีผู้ดูแลระบบที่แสดงโดยใช้ชื่อผู้ใช้ Active Directory ที่มีชื่อผู้ใช้และหมายเลขผสมกัน

ขั้นตอนที่ 2 - ล้างข้อมูลที่ไม่จำเป็นเกี่ยวกับกลุ่มในตัวและตนเอง

เพื่อให้สามารถแสดงเฉพาะ “สิทธิ์ที่ได้รับมอบหมายอย่างชัดเจน” ไปยังกล่องจดหมาย เราจะต้องกรองหรือลบข้อมูลที่ไม่เกี่ยวข้องออก

รายละเอียดแรกที่เราต้องการลบคือสิทธิ์ "ตนเอง" ที่ผู้ใช้แต่ละรายมีในกล่องจดหมายของตน สิทธิ์ประเภทที่สองที่เราต้องการลบออกจากผลลัพธ์ที่แสดงโดยอธิบายว่า: “สิทธิ์ที่สืบทอดมา”

เพื่อล้างข้อมูลที่ไม่จำเป็น เราจะใช้เงื่อนไขตรรกะ (โดยใช้คำสั่ง PowerShell - โดยที่) เพื่อยกเว้นสิทธิ์กล่องจดหมายการเข้าถึงแบบเต็มที่จัดประเภทเป็น NT AUTHORITY\SELF และ สืบทอดมา

ไวยากรณ์คำสั่ง PowerShell:

Get-MailboxPermission "John" | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | FL Identity,User,AccessRights

ในภาพหน้าจอต่อไปนี้ เราจะเห็นว่าเราสามารถแยกหรือล้างข้อมูลที่ไม่เกี่ยวข้องส่วนใหญ่ได้สำเร็จ ขณะนี้เราเห็นได้ว่าผู้ใช้สองคนมีสิทธิ์เข้าถึงกล่องจดหมายแบบเต็มไปยังกล่องจดหมายของ John

ขั้นตอนที่ 3 - การใช้คุณสมบัติจากการคำนวณ

ในขั้นตอนถัดไป เราจะทำงานที่จำเป็นให้เสร็จสิ้น ภารกิจของเราตอนนี้คือการทำให้ชื่อผู้ใช้สามารถอ่านได้มากขึ้นในคอลัมน์ผู้ใช้

เราจะแทนที่แบบแผนชื่อผู้ใช้ Active Directory โดยใช้คุณสมบัติ ชื่อ นอกจากนี้ เราจะเปลี่ยนชื่อส่วนหัวคอลัมน์จากชื่อที่มีอยู่ ผู้ใช้ เป็นส่วนหัวคอลัมน์ที่เป็นมิตรมากขึ้น

เพื่อจุดประสงค์นี้ เราจะสร้างส่วนหัวคอลัมน์ใหม่ชื่อ “ผู้ใช้ที่มีสิทธิ์เข้าถึงแบบเต็ม“ เนื้อหาของคอลัมน์ใหม่จะรวมชื่อผู้ใช้ที่มีสิทธิ์การเข้าถึงกล่องจดหมายแบบเต็มไปยังกล่องจดหมายของ John แต่แทนที่จะใช้แบบแผนชื่อผู้ใช้มาตรฐาน เราจะ "ดึง" คุณสมบัติ "ชื่อ" (หรือตัวระบุ) สำหรับผู้ใช้แต่ละรายที่มีสิทธิ์ออกไป

ไวยากรณ์คำสั่ง PowerShell:

Get-MailboxPermission "John" | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | FT Identity, @{name="Users that have Full Access ";expression={(Get-User $_.User).Name}},AccessRights

ในภาพหน้าจอต่อไปนี้ เราจะเห็นผลลัพธ์

ผลลัพธ์ที่แสดงในคอนโซล PowerShell นั้นเข้าใจได้ง่ายกว่า เราจะเห็นว่าผลลัพธ์มี "ส่วนหัวคอลัมน์ใหม่" ชื่อ ผู้ใช้ที่มีสิทธิ์เข้าถึงแบบเต็ม และเราจะเห็นชื่อผู้ใช้ที่มีสิทธิ์กล่องจดหมายไปยังกล่องจดหมายของ John

แต่ยังมีการปรับปรุงเพิ่มเติมที่เราสามารถใช้ได้ ในภาพหน้าจอ เราจะเห็นว่ามี “ช่องว่างสำคัญ” ระหว่างคอลัมน์ หากหน้าจอ PowerShell ไม่กว้างพอ เราอาจ "สูญเสีย" ข้อมูลบางอย่างได้

มีตัวเลือกใดบ้างในการลดช่องว่างระหว่างคอลัมน์? และคำตอบคือใช่ มาดูกันในขั้นตอนถัดไป

ขั้นตอนที่ 4 - การใช้ตัวเลือกขนาดอัตโนมัติ

ในขั้นตอนนี้ เราจะใช้พารามิเตอร์ AutoSize เพื่อลดช่องว่างระหว่างคอลัมน์ผลลัพธ์

ไวยากรณ์คำสั่ง PowerShell:

Get-MailboxPermission "John" | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | FT Identity, @{name="Users that have Full Access ";expression={(Get-User $_.User).Name}},AccessRights -AutoSize

ในภาพหน้าจอต่อไปนี้ เราจะเห็นผลลัพธ์

ขั้นตอนที่ 5 - กรองเฉพาะสิทธิ์ในกล่องจดหมาย Full Access เท่านั้น

ดังที่ได้กล่าวไว้ก่อนหน้านี้ คำว่า "สิทธิ์ของกล่องจดหมาย" รวมถึงสิทธิ์ประเภทต่างๆ มากมาย บุคคลที่พบบ่อยที่สุดคือการเข้าถึงแบบเต็ม แต่บางครั้งก็มีการใช้สิทธิ์กล่องจดหมายประเภทอื่น

เมื่อเราใช้ PowerShell cmdlets Get-MailboxPermission ผลลัพธ์จะรวมสิทธิ์กล่องจดหมายที่มีอยู่ทั้งหมดที่ผู้ใช้มีสำหรับกล่องจดหมาย

ในกรณีที่เราต้องการแสดงเฉพาะการอนุญาตกล่องจดหมายของการเข้าถึงแบบเต็ม เราสามารถกรองผลลัพธ์ออกได้โดยใช้พารามิเตอร์ ที่ไหน:

($_.AccessRights -like "*FullAccess*")

ไวยากรณ์คำสั่ง PowerShell:

Get-MailboxPermission "John" | Where { ($_.AccessRights -like "*FullAccess*") -and ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | Select Identity, @{name="User";expression={(Get-User $_.User).Name}},AccessRights

แสดงรายการกล่องจดหมายที่ผู้ใช้มีสิทธิ์การเข้าถึงแบบเต็ม

ในส่วนก่อนหน้านี้ เราจะตรวจสอบสถานการณ์สมมติที่เราต้องการได้รับข้อมูลเกี่ยวกับสิทธิ์ของกล่องจดหมายที่ผู้ใช้รายอื่นมีกับผู้ใช้รายใดรายหนึ่ง

ในสถานการณ์ต่อไปนี้ เราต้องการได้รับข้อมูลเกี่ยวกับสิทธิ์ที่ผู้ใช้เฉพาะมีในกล่องจดหมายอื่นหรือเพิ่มเติม

ตัวอย่างเช่น เราต้องการรับข้อมูลเกี่ยวกับกล่องจดหมายใดที่ผู้ดูแลระบบผู้ใช้มีสิทธิ์กล่องจดหมายเข้าถึงแบบเต็ม

เพื่อให้งานนี้สำเร็จ ในส่วนแรกของ PowerShell เราใช้ Get-Mailbox cmdlet เพื่อรับรายการกล่องจดหมายที่มีอยู่ทั้งหมด ในส่วนที่สอง เราใช้ Get-MailboxPermission cmdlet และเพิ่มชื่อผู้ใช้ คำสั่ง PowerShell จะตรวจสอบอาร์เรย์ทั้งหมดของกล่องจดหมาย ตรวจสอบว่ากล่องจดหมายใดที่ผู้ใช้ผู้ดูแลระบบมีสิทธิ์ใช้กล่องจดหมาย และแสดงผลลัพธ์ คำสั่ง PowerShell ที่เหลือใช้เพื่อปรับปรุงผลลัพธ์ที่แสดงโดย Get-MailboxPermission cmdlet

ไวยากรณ์คำสั่ง PowerShell:

Get-Mailbox | Get-MailboxPermission -User "Admin" | Select Identity,@{name="User";expression={(Get-User $_.User).Name}},AccessRights

แสดงรายชื่อผู้รับที่มีสิทธิ์การเข้าถึงแบบเต็มบนผู้รับรายอื่น

ในสถานการณ์ต่อไปนี้ เราต้องการรับรายชื่อผู้ใช้ทั้งหมดที่มีผู้ใช้อื่นที่มีสิทธิ์ในกล่องจดหมายไปยังกล่องจดหมายของตน

ไวยากรณ์คำสั่ง PowerShell:

$a = Get-Mailbox 
$a | Get-MailboxPermission | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") -and -not ($_.User -like '*Discovery Management*') } | Select Identity,@{name="User";expression={(Get-User $_.User).Name}},AccessRights

แสดงการอนุญาตสำหรับกล่องจดหมายเดียวมากขึ้น

เราต้องการรับข้อมูลเกี่ยวกับผู้ใช้ที่มีสิทธิ์กล่องจดหมายสำหรับผู้ใช้มากกว่าหนึ่งราย ในตัวอย่างของเรา เราต้องการทราบว่าใครมีสิทธิ์ใช้กล่องจดหมายในกล่องจดหมายของ John + Alice เราสามารถเพิ่มชื่อผู้ใช้แต่ละรายโดยคั่นด้วยเครื่องหมายจุลภาค

ไวยากรณ์คำสั่ง PowerShell:

"John","Alice" | ForEach {Get-MailboxPermission -Identity $_}

เพื่อปรับปรุงรูปลักษณ์ของผลลัพธ์ที่แสดง เราจะปรับปรุงคำสั่ง PowerShell พื้นฐานสำหรับการลบข้อมูลที่ไม่เกี่ยวข้อง

ไวยากรณ์คำสั่ง PowerShell:

"John", "Alice" | ForEach { Get-MailboxPermission -Identity $_ | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") -and -not ($_.User -like '*Discovery Management*') } } | Select Identity,@{name="User";expression={(Get-User $_.User).Name}},AccessRights

ส่วนที่ 2 ลบสิทธิ์กล่องจดหมาย

ในส่วนสุดท้าย เราจะตรวจสอบวิธีที่เรามีในการลบสิทธิ์ของกล่องจดหมาย PowerShell cdmlet ที่เราใช้สำหรับการลบหรือเพิกถอนสิทธิ์ของกล่องจดหมายคือ Remove-MailboxPermission

สถานการณ์ที่ 1 - ลบสิทธิ์ของกล่องจดหมายออกจากกล่องจดหมายของผู้ใช้

เริ่มต้นด้วยตัวอย่างพื้นฐาน: เราต้องการลบการอนุญาตกล่องจดหมาย Full Access ที่ Alice มีในกล่องจดหมาย John

ไวยากรณ์คำสั่ง PowerShell:

Remove-MailboxPermission "John" -User "Suzan" -AccessRights FullAccess

ตามค่าเริ่มต้น PowerShell cmdlets สำหรับการลบการอนุญาตกล่องจดหมายจะแสดงข้อความเตือน: “คุณแน่ใจหรือไม่ว่าต้องการดำเนินการนี้ ”

ในกรณีที่เราเรียกใช้สคริปต์ที่สร้างงานจำนวนมาก เช่น การลบสิทธิ์ของกล่องจดหมายที่ผู้ใช้จำนวนมากมีในกล่องจดหมายใดกล่องจดหมายหนึ่ง “กระบวนการยืนยัน” อาจจะเหนื่อยเพียงพอ

เพื่อหลีกเลี่ยงกระบวนการยืนยัน เราสามารถเพิ่มพารามิเตอร์ ยืนยัน:$False

ไวยากรณ์คำสั่ง PowerShell:

Remove-MailboxPermission "John" -User "Suzan" -AccessRights FullAccess -Confirm:$False

สถานการณ์ที่ 2 - ลบสิทธิ์ของกล่องจดหมายออกจากคอลเลกชันของกล่องจดหมาย

สถานการณ์นี้สามารถใช้ได้เมื่อผู้ใช้เฉพาะ เช่น สมาชิกในทีมโต๊ะช่วยเหลือหรือผู้ดูแลระบบ มีสิทธิ์กล่องจดหมายเข้าถึงแบบเต็มไปยังกล่องจดหมายจำนวนมาก

ในกรณีที่เราต้องการลบการอนุญาตกล่องจดหมายที่ผู้ใช้มี เราจะต้องได้รับรายการกล่องจดหมายที่มีอยู่ทั้งหมดก่อน จากนั้นเราจะต้องตรวจสอบว่าผู้ใช้รายใดมีสิทธิ์เข้าถึงกล่องจดหมายแบบเต็มในกล่องจดหมายหรือไม่ และขั้นตอนสุดท้ายคือ - ลบสิทธิ์เหล่านี้

ไวยากรณ์คำสั่ง PowerShell:

$Mailboxes = Get-Mailbox 
ForEach ($member in $Mailboxes) {
    Remove-MailboxPermission $member.name -AccessRights FullAccess -user "Admin"
}

เราใช้คำสั่งตามตัวแปรที่เราตั้งชื่อว่า $Mailboxes ค่าตัวแปรประกอบด้วยรายการประเภทกล่องจดหมายที่มีอยู่ทั้งหมด เช่น กล่องจดหมายของผู้ใช้ กล่องจดหมายของห้อง ฯลฯ

ในกรณีที่เราจำเป็นต้องลบสิทธิ์กล่องจดหมายแบบเต็มออกจากกล่องจดหมายประเภทใดประเภทหนึ่ง เราสามารถเพิ่มตัวเลือกตัวกรองให้กับตัวแปรได้

สถานการณ์ที่ 3 - ลบสิทธิ์การเข้าถึงแบบเต็มจากกล่องจดหมายของผู้ใช้เท่านั้น (กรองกล่องจดหมายของผู้ใช้)

ไวยากรณ์คำสั่ง PowerShell:

$Mailboxes = Get-Mailbox -ResultSize unlimited -Filter { (RecipientTypeDetails -eq 'UserMailbox')
    ForEach ($member in $Mailboxes) {
        Remove-MailboxPermission $member.name -AccessRights FullAccess -user "Admin"
    }

สถานการณ์ที่ 4 - เอาสิทธิ์การเข้าถึงแบบเต็มออกจากกล่องจดหมายของห้องเท่านั้น (กล่องจดหมายของห้องกรอง)

ไวยากรณ์คำสั่ง PowerShell:

$Mailboxes = Get-Mailbox -ResultSize unlimited -Filter { (RecipientTypeDetails -eq 'RoomMailbox')
    ForEach ($member in $Mailboxes) {
        Remove-MailboxPermission $member.name -AccessRights FullAccess -user "Admin"
    }

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