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

PowerShell - รับสิทธิ์ในโฟลเดอร์และโฟลเดอร์ย่อย


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

สามารถตั้งค่าสิทธิ์สำหรับผู้ใช้หรือกลุ่มได้ เช่น ผู้ดูแลระบบ, ผู้ใช้ และ แขก การอนุญาตประกอบด้วย Full Control, Modify, Read & Execute, List Folder Contents, Read และ เขียน หากต้องการดำเนินการต่อ การทราบโฟลเดอร์และโฟลเดอร์ย่อยในไดเร็กทอรีปัจจุบันเป็นสิ่งสำคัญ ตัวอย่างเช่น ไดเร็กทอรีการทำงานปัจจุบันสำหรับบทความนี้อยู่ที่ C:\Test

C:\Test ประกอบด้วยไฟล์ข้อความสองไฟล์ (File1.txt และ File2.txt) และโฟลเดอร์ (FolderG และ FolderH) รายการในแต่ละโฟลเดอร์มีดังนี้:

  • C:\Test\FolderG - ประกอบด้วยไฟล์ข้อความสองไฟล์ ( File1.txtและ File6.txt)
  • C:\Test\FolderH - มีไฟล์ข้อความหนึ่งไฟล์ (File6.txt)

ตอนนี้คุณรู้รายละเอียดของไดเร็กทอรีแล้ว มาเรียนรู้การขออนุญาตกันต่อ

ใช้คำสั่ง Get-Acl

ใช้คำสั่ง Get-Acl เพื่อรับสิทธิ์ในโฟลเดอร์ที่ระบุใน PowerShell Get-Acl cmdlet ใช้เพื่อรับรายการควบคุมการเข้าถึง (ACL) สำหรับไฟล์และโฟลเดอร์

ใช้คำสั่ง Get-Acl:

Get-Acl -Path "C:\Test"

เอาท์พุต :

Path  Owner                Access
----  -----                ------
Test DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...

ในโค้ดข้างต้น Get-Acl cmdlet ถูกใช้เพื่อรับรายการควบคุมการเข้าถึง (ACL) สำหรับไฟล์หรือโฟลเดอร์ที่มีการอนุญาตที่ตั้งไว้สำหรับไฟล์หรือโฟลเดอร์นั้น

หากคุณสังเกตเห็น คุณเห็น … ที่นี่หลัง FullControl เนื่องจากไม่ได้แสดงข้อความทั้งหมดให้คุณเห็น

หากต้องการรับข้อความทั้งหมด ให้ใช้ Format-table cmdlet พร้อมตัวเลือก -wrap

นี่คือตัวอย่าง:

ใช้คำสั่ง Get-Acl:

Get-Acl -Path "C:\Test"|Format-table -wrap

เอาท์พุต :

Path  Owner                Access
----  -----                ------
Path       Owner                 Access
----       -----                 ------
powershell DESKTOP-MDAC0NJ\user NT AUTHORITY\SYSTEM Allow  FullControl
                                 BUILTIN\Administrators Allow  FullControl
                                 DESKTOP-MDAC0NJ\user Allow  FullControl

รับสิทธิ์ในไดเร็กทอรีการทำงานปัจจุบัน

หากต้องการรับสิทธิ์ในไดเร็กทอรีการทำงานปัจจุบัน เพียงใช้ get-acl cmdlet โดยไม่มีพารามิเตอร์ใดๆ มันจะให้รายการควบคุมการเข้าถึงสำหรับไดเร็กทอรีการทำงานปัจจุบัน

ใช้คำสั่ง Get-Acl:

Get-Acl

เอาท์พุต :

Path  Owner                Access
----  -----                ------
Test DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...

ใช้ Get-ChildItem กับ Get-Acl Cmdlet

ใช้ Get-Childitem กับ Get-Acl cmdlet เพื่อรับสิทธิ์ในโฟลเดอร์และโฟลเดอร์ย่อยใน PowerShell

ใช้ Get-ChildItem Cmdlet:

Get-ChildItem -Path "C:\Test" -Recurse | Get-Acl

เอาท์พุต :

Directory: C:\Test
Path      Owner                Access
----      -----                ------
FolderG   DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...
FolderH   DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...
File1.txt DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...
File2.txt DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...   

Directory: C:\Test\FolderG
Path      Owner                Access
----      -----                ------
File1.txt DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...
File6.txt DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...

Directory: C:\Test\FolderH
Path       Owner                Access
----      -----                ------
File6.txt DESKTOP-MDAC0NJ\user BUILTIN\Administrators Allow  FullControl...

ในโค้ดข้างต้น cmdlet Get-ChildItem ดึงข้อมูลคอลเลกชันของรายการย่อย (ไฟล์และไดเรกทอรี) ในโฟลเดอร์ที่ระบุ พารามิเตอร์ -Path ระบุเส้นทางไปยังโฟลเดอร์ที่จะค้นหา ซึ่งก็คือ C:\Test พารามิเตอร์ -Recurse บ่งชี้ว่าคำสั่งควรค้นหาซ้ำผ่านโฟลเดอร์ย่อยทั้งหมด

ตัวดำเนินการไปป์ไลน์ | รับเอาต์พุตจากคำสั่ง Get-ChildItem และส่งเป็นอินพุตไปยังคำสั่งถัดไปในไปป์ไลน์ และ Get-Aclcmdlet จะดึงข้อมูลรายการควบคุมการเข้าถึง (ACL) สำหรับออบเจ็กต์อินพุต แต่ละไฟล์และไดเร็กทอรีที่ส่งคืนโดยคำสั่ง Get-ChildItem

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

เมื่อพิจารณาวิธีแก้ปัญหาข้างต้น การทำความเข้าใจสิทธิ์ของโฟลเดอร์และโฟลเดอร์ย่อยถือเป็นสิ่งสำคัญสำหรับการตั้งค่าและจัดการสิทธิ์อย่างมีประสิทธิภาพ เมื่อใช้ Get-Acl และ Get-ChildItem คุณสามารถรับและส่งออกสิทธิ์สำหรับโฟลเดอร์และโฟลเดอร์ย่อยใน PowerShell ได้อย่างง่ายดาย ด้วยตัวอย่างเหล่านี้ คุณสามารถเริ่มจัดการสิทธิ์ของโฟลเดอร์และโฟลเดอร์ย่อยได้อย่างมั่นใจ

นั่นคือทั้งหมดที่เกี่ยวกับวิธีรับสิทธิ์ในโฟลเดอร์และโฟลเดอร์ย่อยใน PowerShell

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