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

การสร้างลูปผ่านอาร์เรย์โดยใช้คำสั่ง "ForEach" และตัวแปร | สภาพแวดล้อม PowerShell | ส่วนที่ 2#2


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

การสร้างการวนซ้ำผ่านอาร์เรย์โดยใช้ชุดบทความ PowerShell “ForEach”

การสร้างการวนซ้ำผ่านอาร์เรย์โดยใช้ชุดบทความ PowerShell “ForEach” ประกอบด้วยบทความต่อไปนี้:

  • การสร้างลูปผ่านอาร์เรย์โดยใช้คำสั่ง "ForEach" PowerShell | การแนะนำเบื้องต้น | ตอนที่ 1#2
  • การสร้างลูปผ่านอาร์เรย์โดยใช้คำสั่ง “ForEach” และตัวแปร | สภาพแวดล้อม PowerShell | ส่วนที่ 2#2 (บทความนี้)

การใช้ตัวแปร PowerShell

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

โดยส่วนใหญ่ “ข้อมูล” ที่จัดเก็บไว้ในตัวแปรนั้นถือได้ว่าเป็น “ข้อมูลอาร์เรย์”

“ตัวแปร” ถือได้ว่าเป็น “องค์ประกอบสำคัญ” ที่ใช้ค่อนข้างบ่อยเมื่อใช้ PowerShell “คำสั่ง ForEach” และอาร์เรย์

การใช้ตัวแปร - กระแสของเหตุการณ์

เมื่อใช้ตัวแปร PowerShell จะมีการนำขั้นตอนหรือขั้นตอนต่อไปนี้ไปใช้:

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

ไวยากรณ์ของตัวแปรในสภาพแวดล้อม PowerShell

ตัวแปร “ไวยากรณ์” ถูกเขียนในลักษณะต่อไปนี้:

  1. ใช้เครื่องหมาย $ เพื่อ “ประกาศ” ตัวแปร
  2. กำหนดชื่อตัวแปร ชื่อตัวแปรเป็นชื่อที่เราเลือกเอง แนวทางปฏิบัติที่ดีที่สุดคือการเลือกชื่อตัวแปรที่ "มีความหมาย" ชื่อตัวแปรไม่คำนึงถึงขนาดตัวพิมพ์ ชื่อตัวแปรสามารถมีช่องว่างและอักขระพิเศษได้ แต่สิ่งเหล่านี้ใช้งานยากและควรหลีกเลี่ยง
  3. เขียนคำสั่ง “PowerShell รับ” เฉพาะสำหรับ “การดึงข้อมูล” เกี่ยวกับวัตถุเฉพาะ ผลลัพธ์จากคำสั่ง PowerShell จะถูกเก็บไว้ในตัวแปร

ตัวอย่างของไวยากรณ์ของตัวแปรอาจเป็น:

$ExchangeMailboxes = Get-Mailbox

ในสถานการณ์นี้ เราได้กำหนดตัวแปรชื่อ $ExchangeMailboxes ซึ่งจะใช้สำหรับจัดเก็บข้อมูลที่เราได้รับจากคำสั่ง PowerShell Get-Mailbox

การใช้คำสั่ง PowerShell “ForEach” + Array

ข้อดีที่ชัดเจนที่สุดประการหนึ่งของการดำเนินงานด้านการจัดการโดยใช้ PowerShell คือความสามารถในการดำเนินการ "การดำเนินการจำนวนมาก" ซึ่งหมายถึงกระบวนการที่จะดำเนินการบน "กลุ่ม" (อาร์เรย์) ของออบเจ็กต์

ความสามารถในการรันงานเฉพาะบนสมาชิกอาร์เรย์ถูกนำไปใช้หลายครั้งโดยใช้คำสั่ง ForEach PowerShell + ตัวแปรที่จัดเก็บข้อมูล Array (ของสมาชิก Array)

เราใช้คำสั่ง ForEach PowerShell สำหรับการนำโฟลว์ต่อไปนี้ไปใช้:

  1. “การสแกน” เนื้อหาอาร์เรย์
  2. ค้นหาสมาชิกตัวแรกในอาร์เรย์
  3. เรียกใช้คำสั่ง PowerShell เฉพาะบนสมาชิก Array (“ทำอะไรสักอย่าง”)
  4. เริ่มต้นกระบวนการใหม่ทั้งหมดโดยเข้าไปที่ Array store ดึงข้อมูล สมาชิกตัวที่สอง ใน Array เรียกใช้คำสั่ง PowerShell ที่ร้องขอ และอื่นๆ

กระบวนการวนซ้ำนี้จะหยุดหลังจากคำสั่ง PowerShell ForEach ค้นหา "สมาชิกสุดท้าย" ในอาร์เรย์

ในแผนภาพต่อไปนี้ เราจะเห็นตัวอย่างของคำสั่ง PowerShell ที่มีคำสั่ง “ForEach PowerShell ” + ตัวแปร PowerShell

  • ส่วนที่ 1#3 - ในส่วนนี้ เราประกาศชื่อของตัวแปร และ “ชาร์จ ” “ที่เก็บตัวแปร ” ด้วยผลลัพธ์ของคำสั่ง “รับ ” PowerShell
  • ตอนที่ 2#3 - ในส่วนนี้ เราจะเริ่ม “ForEach PowerShell stamen ” + ประกาศชื่อของตัวแปรเพิ่มเติม ซึ่งใช้สำหรับแทนสมาชิกเฉพาะใน Array
  • ส่วนที่ 3#3 - ในส่วนนี้ (ที่ขึ้นต้นด้วยวงเล็บปีกกา) เรากำหนดคำสั่ง PowerShell เฉพาะ ซึ่งจะถูก “ดำเนินการ” แยกกันสำหรับสมาชิกแต่ละคนใน Array นี่คือส่วน "ทำบางสิ่งบางอย่าง" เมื่อใช้คำสั่ง Loop คำสั่ง PowerShell เฉพาะจะถูกเขียนระหว่างวงเล็บปีกกา

จะกล่าวถึงสมาชิกใน Array ได้อย่างไร?

ดังที่เราทราบ Array คือกลุ่มของสมาชิก เมื่อเราใช้คำสั่ง PowerShell ที่ใช้คำสั่ง “ForEach PowerShell” เราต้องการที่จะระบุหรืออ้างอิงสมาชิกแต่ละคนในอาร์เรย์ และ “ใช้ ” คำสั่ง PowerShell เฉพาะกับสมาชิกแต่ละคนโดยเฉพาะ

ในทางเทคนิคแล้ว มีสองวิธีที่เราสามารถใช้เพื่อเกี่ยวข้องกับ "วัตถุสมาชิกอาร์เรย์"

ในบทความปัจจุบัน ฉันอยากจะทบทวนวิธีการที่เราใช้ตัวแปรเพิ่มเติมที่แสดงถึง "วัตถุสมาชิก"

คำสั่ง ForEach PowerShell รู้วิธีการเข้าถึง "พื้นที่อาร์เรย์" (แสดงโดย "ตัวแปรอาร์เรย์") และวนซ้ำผ่านอาร์เรย์

ในแต่ละลูป คำสั่ง ForEach PowerShell “ดึง ” สมาชิกเฉพาะจากอาร์เรย์ (แสดงโดย “ตัวแปรสมาชิก ”) เรียกใช้คำสั่ง PowerShell ที่จำเป็น และดำเนินการต่อไปยัง “สมาชิก Array ถัดไป”

ชื่อของตัวแปรที่แสดงถึงสมาชิกอาร์เรย์เป็นเพียงชื่อที่เราเลือกเอง

แนวทางปฏิบัติที่ดีที่สุดคือการเลือกชื่อตัวแปรที่มีความหมาย ซึ่งช่วยให้เราแยกแยะระหว่าง “สมาชิก” และ “อาร์เรย์” ได้อย่างง่ายดาย

ในแผนภาพต่อไปนี้ เราจะเห็นโครงสร้างของคำสั่ง “ForEach คำสั่ง PowerShell ” ซึ่งเรากำหนดอาร์เรย์และสมาชิกในอาร์เรย์ โดยใช้ตัวแปรสองตัวที่แตกต่างกัน

ในตัวอย่างของเรา ตัวแปร $Mailbox แสดงถึงสมาชิกแต่ละคนในอาร์เรย์ และตัวแปร $ExchangeMailboxes เป็นตัวแทนของ Array เอง

เพื่อให้สามารถสาธิตแนวคิดของตัวแปรและอาร์เรย์ได้ ลองใช้สองตัวอย่างต่อไปนี้:

ตัวอย่างที่ 1: ดูสมาชิกอาร์เรย์ที่ระบุ

ในตัวอย่างถัดไป เราใช้ตัวแปรชื่อ $ExchangeMailboxes สำหรับจัดเก็บอาร์เรย์ที่สร้างขึ้นโดยใช้คำสั่ง PowerShell Get-mailbox

PowerShell ที่สมบูรณ์คือ:

$ExchangeMailboxes = Get-Mailbox

ในระยะนี้ เรามีตัวแปรที่ประกอบด้วยสมาชิกอย่างน้อยหนึ่งราย (กล่องจดหมาย Exchange Online) ตามทฤษฎีแล้ว เราไม่สามารถ "รู้" ว่ามีอะไรเก็บไว้ใน "ปริภูมิตัวแปร"

เพื่อให้สามารถดูสมาชิก Array แรกที่จัดเก็บไว้ในตัวแปร $ExchangeMailboxes เราสามารถใช้คำสั่ง PowerShell ต่อไปนี้:

$ExchangeMailboxes[0]

หากต้องการดูสมาชิก Array ตัวที่สอง ให้จัดเก็บไว้ในตัวแปร $ExchangeMailboxes

$ExchangeMailboxes[1]

และอื่นๆ

ตัวอย่างเอาต์พุตคอนโซล PowerShell:

PS C:\> $ExchangeMailboxes = Get-Mailbox

PS C:\> $ExchangeMailboxes[0]

Name  Alias ServerName    ProhibitSendQuota
----  ----- ----------    -----------------
Adele Adele amxpr05mb0646 49.5 GB (53,150,220,288 bytes)

PS C:\> $ExchangeMailboxes[1]

Name             Alias ServerName    ProhibitSendQuota
----             ----- ----------    -----------------
admin_3a5bb52c62 Bob   he1pr05mb1369 49.5 GB (53,150,220,288 bytes)

ตัวอย่างที่ 2: การเขียนคำสั่งลูป PowerShell ที่แสดงสมาชิกอาร์เรย์แต่ละตัว

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

ในตัวอย่างนี้ เราขอให้ PowerShell ดึงข้อมูลสมาชิก Array แต่ละตัวที่จัดเก็บไว้ในตัวแปร $ExchangeMailboxes และเขียนการแจ้งเตือนบนหน้าจอคอนโซล PowerShell ที่ใช้ไวยากรณ์ต่อไปนี้: นี่คือ หนึ่งในสมาชิกอาร์เรย์ - “(กล่องจดหมาย Exchange)” +

ตัวอย่างคำสั่ง PowerShell:

$ExchangeMailboxes = Get-Mailbox
ForEach ($Mailbox in $ExchangeMailboxes) {
    Write-host This is one of the array members - "(Exchange mailbox)" - $Mailbox
}

ตัวอย่างเอาต์พุตคอนโซล PowerShell:

This is one of the array members - Exchange mailbox - Adele
This is one of the array members - Exchange mailbox - Alice Good
This is one of the array members - Exchange mailbox - Alicia Keys
This is one of the array members - Exchange mailbox - Angelina Jolie
This is one of the array members - Exchange mailbox - Aretha Franklin
This is one of the array members - Exchange mailbox - Beatles the
This is one of the array members - Exchange mailbox - Beyonce
This is one of the array members - Exchange mailbox - Billy
This is one of the array members - Exchange mailbox - Bob Marley

จะระบุตัวตนของสมาชิก Array เฉพาะได้อย่างไร?

ในส่วนนี้ผมอยากจะพูดถึงหัวข้อ - จะระบุตัวตนของสมาชิก Array เฉพาะได้อย่างไร?

ตามที่กล่าวไว้ เราต้องการให้คำสั่ง PowerShell เฉพาะทำงานบนสมาชิกแต่ละตัวของ Array

หากต้องการเปิดใช้งาน PowerShell เพื่อดำเนินการนี้ เราจำเป็นต้องใช้วิธีที่จะช่วยให้ PowerShell “เชื่อมโยง” กับสมาชิกแต่ละคนแยกกัน กล่าวอีกนัยหนึ่งเราต้อง “บอก” PowerShell ว่า “ตัวตน” ของสมาชิกแต่ละคนใน Array คืออะไร,

ในการระบุข้อมูลประจำตัวของสมาชิกในอาร์เรย์ในสภาพแวดล้อม PowerShell เราจะใช้ไวยากรณ์ต่อไปนี้:

ชื่อตัวแปรที่แสดงถึง "วัตถุสมาชิก" + "อักขระจุด" + หนึ่งในคุณสมบัติของวัตถุที่แสดงถึงเอกลักษณ์ของวัตถุ

ฟังดูน่าสับสนและเข้าใจยากใช่ไหม?

ทางออกเดียวที่ฉันรู้คือ - อ่านข้อมูลที่ให้มาและตัวอย่างซ้ำแล้วซ้ำอีกจนกว่าคุณจะเห็น “ภาพที่สมบูรณ์”

ในแผนภาพต่อไปนี้ เราจะเห็นตัวอย่างไวยากรณ์ที่เราใช้เกี่ยวกับสมาชิกเฉพาะในอาร์เรย์

ในตัวอย่างของเรา ตัวแปรที่เราใช้แทนสมาชิก Array คือ $Mailbox และ “คุณสมบัติการระบุตัวตนของวัตถุ ” ที่เราใช้คือ DisplayName

เอกลักษณ์ของวัตถุ ” และ “คุณสมบัติเอกลักษณ์ ”

สิ่งนี้นำเราไปสู่คำถามถัดไป - อะไรคือความหมายของ "เอกลักษณ์ของวัตถุ" และอะไรคือความหมายของ "คุณสมบัติประจำตัว"?

คำตอบก็คือ แต่ละ “วัตถุ PowerShell” มี “ตัวตน” ในลักษณะเดียวกันกับที่เราแต่ละคนมีเอกลักษณ์

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

ในไดอะแกรมต่อไปนี้ เราจะดูตัวอย่างข้อมูลเฉพาะตัวที่มีอยู่ทั้งหมดของกล่องจดหมาย Exchange ในสภาพแวดล้อมที่ใช้ Exchange Online

ในกรณีที่คุณ “ปวดหัว” จากความหลากหลายของตัวตน ไม่เป็นไร!

ในความเป็นจริง เราไม่ได้ใช้ "ข้อมูลระบุตัวตน" ทุกประเภท แต่ใช้เฉพาะชุดข้อมูลระบุตัวตนเฉพาะที่ใช้กันทั่วไปแทน

สมาชิกอาร์เรย์และความสัมพันธ์ทั่วไปสองประเภท

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

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

  1. หนึ่งต่อหนึ่ง
  2. หนึ่งต่อหลาย ๆ
  3. หลายต่อหนึ่ง
  4. มากมายต่อมากมาย

เพื่อให้สามารถกำหนดความสัมพันธ์แบบ "หนึ่งต่อหนึ่ง" ได้ เราไม่จำเป็นต้องใช้คำสั่ง Array และ "ForEach " PowerShell"

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

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

ความสัมพันธ์แบบหนึ่งต่อหลายความสัมพันธ์ - ตัวอย่าง

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

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

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

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

  • ในตัวอย่างของเรา “อาร์เรย์” จะรวมกล่องจดหมาย Exchange Online ทั้งหมด
  • กล่องจดหมาย Exchange Online แต่ละกล่องจะถือว่าเป็นสมาชิกในอาร์เรย์
  • John แสดงถึง “หนึ่ง ” ในความสัมพันธ์ปัจจุบัน
  • กล่องจดหมาย Exchange Online แสดงถึง "หลาย " ในความสัมพันธ์ปัจจุบัน

ความสัมพันธ์แบบหลายต่อหนึ่ง - ตัวอย่าง

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

กล่าวอีกนัยหนึ่ง เปิดใช้งานกลุ่มของวัตถุ (หลายวัตถุ) เพื่อ "ทำบางสิ่งบางอย่าง" บนวัตถุเฉพาะ

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

ตัวอย่างเช่น เราต้องการกำหนดสิทธิ์การเข้าถึงแบบเต็มให้กับผู้ใช้ทุกคนที่ "อยู่ในกลุ่ม IT" ใน "กล่องจดหมาย Help Desk" (หนึ่ง) ซึ่งทำหน้าที่เป็นกล่องจดหมายสำหรับตั๋ว Helpdesk

  • ในตัวอย่างของเรา “Array ” จะรวมสมาชิกไอทีทั้งหมด
  • ผู้ใช้ไอทีแต่ละคนจะพิจารณาว่าเป็นสมาชิกในอาร์เรย์
  • สมาชิกด้านไอทีเป็นตัวแทนของ “หลายคน ” ในความสัมพันธ์ปัจจุบัน
  • “กล่องจดหมาย Help Desk ” แสดงถึง “หนึ่งอัน ” ในความสัมพันธ์ปัจจุบัน

การใช้คำสั่ง PowerShell Loop + ตัวแปร + กำหนดความสัมพันธ์แบบสองประเภททั่วไป

ในส่วนนี้ผมขอ “แร็ป” สองสามวิชาที่เราทบทวนมาจนถึงตอนนี้เพื่อจะได้เข้าใจ “ภาพรวม” ได้ดีขึ้น

การใช้ตัวอย่างคำสั่ง PowerShell ForEach - ตัวอย่างของความสัมพันธ์แบบหนึ่งถึงกลุ่ม

ในส่วนปัจจุบัน เราจะสาธิตความสัมพันธ์ซึ่งอธิบายว่า "หนึ่งต่อหลาย"

คำอธิบายสถานการณ์

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

เพื่อให้สามารถตอบสนองความต้องการนี้ได้ เราจึงสร้างคำสั่ง PowerShell Loop ที่ประกอบด้วยส่วนต่างๆ ต่อไปนี้:

ส่วนที่ 1#3 - ในส่วนนี้ เรากำหนดตัวแปรชื่อ $ExchangeMailboxes ซึ่งจะ "เก็บ" เอาต์พุตจากคำสั่ง PowerShell Get-Mailbox

คำสั่ง PowerShell ที่ระบุจะได้รับ "รายการ" ของกล่องจดหมาย Exchange Online ที่มีอยู่ทั้งหมด

$ExchangeMailboxes = Get-Mailbox

ตอนที่ 2#3 - ในส่วนนี้ เรากำหนดตัวแปรเพิ่มเติมชื่อ $Mailbox ที่ใช้แทนสมาชิกแต่ละคนใน “Exchange mailbox Array” (ข้อมูลที่จัดเก็บไว้ในตัวแปร $ExchangeMailboxes)

ForEach ($Mailbox in $ExchangeMailboxes)

ส่วนที่ 3#3 - ในส่วนนี้ เรากำหนดคำสั่ง PowerShell ที่จะมอบหมายสิทธิ์การเข้าถึงแบบเต็มให้กับกล่องจดหมาย Exchange Online แต่ละรายการให้กับผู้ใช้ “John

Add-MailboxPermission -identity $Varibale.<Identity> -user <Identity> -AccessRights FullAccess

การอ้างอิงข้อมูลระบุตัวตนของสมาชิกอาร์เรย์แต่ละตัว

โปรดสังเกตไวยากรณ์ที่เราใช้สำหรับอ้างอิงข้อมูลเฉพาะตัวของสมาชิก Array แต่ละคน (แต่ละกล่องจดหมาย Exchange Online)

ไวยากรณ์ที่เราใช้คือ $Mailbox.DisplayName

ข้อมูลประจำตัวของสมาชิกแต่ละคนจะถูก “เขียน” โดยใช้ชื่อตัวแปรที่เก็บสมาชิกแต่ละคนในอาร์เรย์ไว้ชั่วคราว ($Mailbox) + คุณสมบัติ “identity ” ที่เฉพาะเจาะจง

ในตัวอย่างของเรา เราใช้ "DisplayName " เป็นคุณสมบัติประจำตัว

“การรวม” ของทั้งสองส่วนนี้ช่วยให้เรา “ระบุ” สมาชิก Array แต่ละคนแยกกันได้ในกระบวนการวนซ้ำที่ดำเนินการโดย “คำสั่ง ForEach PowerShell”

ตัวอย่างคำสั่ง PowerShell ForEach - ตัวอย่างความสัมพันธ์แบบกลุ่มต่อหนึ่ง

ในส่วนปัจจุบัน เราจะแสดงความสัมพันธ์ที่อธิบายว่าเป็น "หลายต่อหนึ่ง"

คำอธิบายสถานการณ์

ฝ่ายไอทีใช้กล่องจดหมายที่ใช้ร่วมกันชื่อ - HelpDesk ซึ่งทำหน้าที่จัดเก็บตั๋วแผนกช่วยเหลือที่ผู้ใช้ในองค์กรเปิด

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

ส่วนที่ 1#3 - ในส่วนนี้ เรากำหนดตัวแปรชื่อ $ITMembers ซึ่งจะ "เก็บ" เอาต์พุตจากคำสั่ง PowerShell

Get-User | Where {$_.Title -eq "Administrator"}

คำสั่ง PowerShell ที่ระบุจะได้รับ “รายการ ” ของผู้ใช้ที่มีอยู่ทั้งหมด ซึ่งชื่อของผู้ใช้มีค่า - “ผู้ดูแลระบบ ”

$ITMembers = Get-User | Where {$_.Title -eq "Administrator"}

ตอนที่ 2#3 - ในส่วนนี้ เรากำหนดตัวแปรเพิ่มเติมชื่อ $User ซึ่งใช้สำหรับแทนสมาชิกแต่ละคนใน “IT array ” (ข้อมูลที่เก็บไว้ในตัวแปร $ไอทีสมาชิก)

ForEach ($User in $ITMembers)

ส่วนที่ 3#3 - ในส่วนนี้ เรากำหนดคำสั่ง PowerShell ที่จะกำหนดสิทธิ์การเข้าถึงแบบเต็มให้กับสมาชิก IT แต่ละคนใน “กล่องจดหมาย Helpdesk”

Add-MailboxPermission -identity <Identity> -user $user.<Identity> -AccessRights FullAccess

การอ้างอิงข้อมูลระบุตัวตนของสมาชิกอาร์เรย์แต่ละตัว

สังเกตไวยากรณ์ที่เราใช้สำหรับอ้างอิงข้อมูลประจำตัวของสมาชิก Array แต่ละคน (สมาชิก IT แต่ละคน)

ไวยากรณ์ที่เราใช้คือ $User.Alias

ข้อมูลประจำตัวของสมาชิกแต่ละคนในอาร์เรย์นั้นจะถูก “เขียน” โดยใช้ชื่อตัวแปรที่เก็บสมาชิกแต่ละตัวในอาร์เรย์ไว้ชั่วคราว ($User) + “คุณสมบัติข้อมูลประจำตัว” เฉพาะ

ในตัวอย่างของเรา เราใช้ "นามแฝง" เป็นคุณสมบัติประจำตัว

“การรวม” ของทั้งสองส่วนนี้ช่วยให้เรา “ระบุ” สมาชิก Array แต่ละคนได้เป็นรายบุคคล

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