วิธีใช้ Xcacls.vbs เพื่อปรับเปลี่ยนสิทธิ์ NTFS

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 825751 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

มีรุ่นที่อัปเดทของเครื่องมือ Extended Change Access Control List (Xcacls.exe) ที่สามารถใช้งานเป็น Microsoft Visual Basic script (Xcacls.vbs) จาก Microsoft บทความที่แสดงข้อมูลแบบเป็นขั้นตอนนี้จะอธิบายวิธีใช้สคริปต์ Xcacls.vbs เพื่อปรับเปลี่ยนและดูสิทธิ์ของระบบแฟ้ม NTFS สำหรับแฟ้มหรือโฟลเดอร์ คุณสามารถใช้ Xcacls.vbs จากบรรทัดคำสั่ง เพื่อตั้งค่าตัวเลือกความปลอดภัยของระบบแฟ้มทั้งหมดที่สามารถเข้าถึงได้ใน Microsoft Windows Explorer Xcacls.vbs จะแสดงและปรับเปลี่ยน Access Control List (ACL) ของแฟ้ม

หมายเหตุ Xcacls.vbs สามารถใช้งานได้เฉพาะกับ Microsoft Windows 2000, Microsoft Windows XP, และ Microsoft Windows Server 2003 เท่านั้น Xcacls.vbs ไม่ได้รับการสนับสนุนจาก Microsoft

ตั้งค่าและใช้ Xcacls.vbs

เมื่อต้องการตั้งค่าและใช้ Xcacls.vbs ให้ทำตามขั้นตอนเหล่านี้:
  1. ขอรับรุ่นล่าสุดของ Xcacls.vbs จากเว็บไซต์ต่อไปนี้ของ Microsoft:
    http://download.microsoft.com/download/f/7/8/f786aaf3-a37b-45ab-b0a2-8c8c18bbf483/XCacls_Installer.exe
  2. ดับเบิลคลิก Xcacls_Installer.exe เมื่อระบบแสดงพร้อมท์ให้คุณระบุตำแหน่งเพื่อวางแฟ้มที่ขยาย ให้ระบุโฟลเดอร์ที่อยู่ในการตั้งค่าเส้นทางการค้นหาของคอมพิวเตอร์ของคุณ เช่น C:\Windows
  3. เปลี่ยนเอ็นจินการเขียนสคริปต์เริ่มต้นจาก Wscript เป็น Cscript (สคริปต์ Xcacls.vbs ทำงานได้ดีที่สุดใน Cscript) เมื่อต้องการดำเนินการนี้ ให้พิมพ์ข้อมูลต่อไปนี้ที่พร้อมท์คำสั่ง จากนั้นกด ENTER:
    cscript.exe /h:cscript
    หมายเหตุ การเปลี่ยนเอ็นจินการเขียนสคริปต์เริ่มต้นเป็น Cscript จะมีผลต่อวิธีเขียนสคริปต์บนหน้าจอเท่านั้น Wscript จะเขียนทีละบรรทัดในกรอบข้อความ ตกลง Cscript จะเขียนแต่ละบรรทัดในหน้าต่างคำสั่ง ถ้าคุณไม่ต้องการเปลี่ยนเอ็นจินการเขียนสคริปต์เริ่มต้น คุณต้องเรียกใช้สคริปต์โดยใช้คำสั่งต่อไปนี้
    cscript.exe xcacls.vbs
    แต่ถ้าคุณเปลี่ยนค่าเริ่มต้นเป็น Cscript คุณสามารถเรียกใช้สคริปต์ด้วยคำสั่งต่อไปนี้:
    xcacls.vbs
  4. เมื่อต้องการดูไวยากรณ์ของคำสั่ง Xcacls.vbs ให้พิมพ์ข้อมูลต่อไปนี้ที่พร้อมท์คำสั่ง:
    xcacls.vbs /?

ไวยากรณ์สำหรับคำสั่ง Xcacls.vbs

ผลลัพธ์ต่อไปนี้ของคำสั่ง xcacls.vbs /? จะอธิบายไวยากรณ์ของคำสั่ง Xcacls.vbs:
การใช้งาน: XCACLS filename [/E] [/G user:perm;spec] [...] [/R user [...]] [/F] [/S] [/T] [/P user:perm;spec [...]] [/D user:perm;spec] [...] [/O user] [/I ENABLE/COPY/REMOVE] [/N [/L filename] [/Q] [/DEBUG]

   filename            [จำเป็น] ถ้าใช้เพียงอย่างเดียว จะแสดง ACL (ชื่อแฟ้มอาจเป็นชื่อแฟ้ม ชื่อไดเรกทอรี อักขระที่เป็นสัญลักษณ์การค้นหา และสามารถระบุเส้นทางทั้งหมดได้ ถ้าไม่มีเส้นทาง จะถือว่าอยู่ในไดเรกทอรีปัจจุบัน) หมายเหตุ: - วางชื่อแฟ้มในเครื่องหมายคำพูดถ้ามีการเว้นวรรคหรืออักขระพิเศษ เช่น &, $, # เป็นต้น - ถ้าชื่อแฟ้มเป็นไดเรกทอรี แฟ้มและไดเรกทอรีย่อยทั้งหมดจะไม่เปลี่ยนแปลง ยกเว้นว่ามี /F หรือ S 

   /F                  [ใช้กับไดเรกทอรีหรือสัญลักษณ์การค้นหา] ซึ่งจะเปลี่ยนแปลงแฟ้มทั้งหมดภายในไดเรกทอรีที่ระบุ แต่จะไม่ดำเนินการกับไดเรกทอรีย่อย ยกเว้นกรณีที่มี /T ถ้าชื่อแฟ้มเป็นไดเรกทอรี และไม่ได้ใช้ /F ระบบจะไม่ดำเนินการกับแฟ้มใดเลย

   /S                  [ใช้กับไดเรกทอรีหรือสัญลักษณ์การค้นหา] ซึ่งจะเปลี่ยนแปลงโฟลเดอร์ย่อยทั้งหมดภายในไดเรกทอรีที่ระบุ แต่จะไม่ดำเนินการกับไดเรกทอรีย่อย ยกเว้นกรณีที่มี /T ถ้าชื่อแฟ้มเป็นไดเรกทอรี และไม่ได้ใช้ /S ระบบจะไม่ดำเนินการกับไดเรกทอรีย่อยใดเลย

   /T                  [ใช้เฉพาะกับไดเรกทอรี] ดำเนินการกับแต่ละไดเรกทอรีย่อยและดำเนินการแก้ไขเหมือนกัน สวิตช์นี้จะดำเนินการกับไดเรกทอรีต่อเมื่อชื่อแฟ้มเป็นไดเรกทอรี หรือใช้อักขระที่เป็นสัญลักษณ์การค้นหา /E                  แก้ไข ACL แทนการแทนที่

   /G user:GUI         ให้สิทธิ์การรักษาความปลอดภัยที่คล้ายกับตัวเลือกมาตรฐานของ Windows GUI (ไม่ใช่ขั้นสูง) /G user:Perm;Spec   ให้สิทธิ์การเข้าถึงของผู้ใช้ที่ระบุ (/G เพิ่มในสิทธิ์ที่มีอยู่สำหรับผู้ใช้)

                       User: ถ้า User มีการเว้นวรรค ให้วางในเครื่องหมายคำพูด ถ้า User ประกอบด้วย #machine# จะมีการแทนที่ #machine# ด้วยชื่อเครื่องจริงถ้าเป็นคอนโทรเลอร์ที่ไม่ใช่โดเมน และแทนที่ด้วยชื่อโดเมนจริงถ้าเป็นคอนโทรลเลอร์ของโดเมน

                             ใหม่ใน 3.0: User อาจเป็นสตริงที่แสดง SID จริง แต่ต้องนำหน้าด้วย SID# ตัวอย่าง: SID#S-1-5-21-2127521184-160... (สตริง SID ที่ปรากฏนี้ถูกทำให้สั้นลง) (ถ้าผู้ใช้ใดมี SID# รายการที่ตรงทั้งหมดจะต้องตรงกับ SID (ไม่ใช่ชื่อ) ถ้าคุณต้องการใช้การเปลี่ยนแปลงกับแอคเคาท์ทั้งหมดที่ตรงกับ Domain\User ไม่ต้องระบุ SID# เป็นผู้ใช้)

                       GUI: สำหรับสิทธิ์มาตรฐาน และสามารถเป็น: สิทธิ์การใช้งาน... F  มีการควบคุมแบบเต็ม M  ปรับเปลี่ยน X  อ่านและใช้งาน L  แสดงเนื้อหาโฟลเดอร์ R  อ่าน W  เขียน หมายเหตุ: ถ้ามี ; ปรากฏอยู่ ระบบจะพิจารณาว่าเป็นคู่ของพารามิเตอร์ Perm;Spec

                       Perm: สำหรับ "แฟ้มเท่านั้น" และสามารถเป็น: สิทธิ์การใช้งาน... F  มีการควบคุมแบบเต็ม M  ปรับเปลี่ยน X  อ่านและใช้งาน R  อ่าน W  เขียน ขั้นสูง... D  อ้างสิทธิ์เป็นเจ้าของ C  เปลี่ยนสิทธิ์การใช้งาน B  อ่านสิทธิ์ใช้งาน A  ลบ 9  เขียนแอตทริบิวต์ 8  อ่านแอตทริบิวต์ 7  ลบโฟลเดอร์ย่อยและแฟ้ม 6 ดำเนินการกับโฟลเดอร์ / เรียกใช้แฟ้ม 5  เขียนแอตทริบิวต์ที่ขยาย 4  อ่านแอตทริบิวต์ที่ขยาย 3  สร้างโฟลเดอร์ / ต่อท้ายข้อมูล 2  สร้างแฟ้ม / เขียนข้อมูล 1  แสดงโฟลเดอร์ / อ่านข้อมูล ใช้สำหรับ "โฟลเดอร์และโฟลเดอร์ย่อยเท่านั้น" และมีตัวเลือกเหมือนกับ Perm

   /R user             เลิกใช้สิทธิ์การเข้าถึงของผู้ใช้ที่ระบุ (จะลบ Allowed หรือ Denied ACL สำหรับผู้ใช้)

   /P user:GUI         แทนที่สิทธิ์การรักษาความปลอดภัยที่คล้ายกับตัวเลือกมาตรฐาน

   /P user:perm;spec   แทนที่สิทธิ์การเข้าถึงของผู้ใช้ที่ระบุ สำหรับการระบุสิทธิ์การเข้าถึง โปรดดูที่ตัวเลือก /G (/P ทำหน้าที่เหมือนกับ /G ถ้าไม่มีการตั้งค่าสิทธิ์สำหรับผู้ใช้)

   /D user:GUI         ปฏิเสธสิทธิ์การรักษาความปลอดภัยที่คล้ายกับตัวเลือกมาตรฐาน
   /D user:perm;spec   ปฏิเสธสิทธิ์การเข้าถึงของผู้ใช้ที่ระบุ สำหรับการระบุสิทธิ์การเข้าถึง โปรดดูที่ตัวเลือก /G (/D เพิ่มในสิทธิ์ที่มีอยู่สำหรับผู้ใช้)

   /O user             เปลี่ยนความเป็นเจ้าของสำหรับผู้ใช้หรือกลุ่มนี้

   /I switch           ค่าสถานะการส่งต่อ  ถ้าไม่ได้ระบุไว้ ค่าเริ่มต้นคือไม่ดำเนินการกับ ACL ที่ส่งต่อ สวิตช์อาจเป็น: ENABLE - เปิดใช้ค่าสถานะการส่งต่อถ้ายังไม่ได้เปิดใช้งานอยู่ COPY   - ระบบจะปิดค่าสถานะการส่งต่อและคัดลอก ACL ที่ส่งต่อไปยัง ACL ที่มีผล REMOVE - ระบบจะปิดค่าสถานะการส่งต่อและจะไม่คัดลอก ACl ที่ส่งต่อ ซึ่งจะตรงข้ามกับ ENABLE ถ้าสวิตช์ไม่ปรากฏ /I จะไม่ได้รับการประมวลผลและ ACL ที่ส่งต่อจะไม่มีการเปลี่ยนแปลง

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

                       ถ้าไม่มีชื่อแฟ้ม ระบบจะใช้ชื่อเริ่มต้นของ XCACLS

   /Q                  เปิดโหมด Quiet  ตามค่าเริ่มต้น ตัวเลือกนี้จะปิดการใช้งานอยู่ ถ้ามีการเปิดตัวเลือกนี้ จะไม่มีการแสดงผลบนหน้าจอ


   /DEBUG              เปิดโหมด Debug ตามค่าเริ่มต้น ตัวเลือกนี้จะปิดการใช้งานอยู่ ถ้ามีการเปิดตัวเลือกนี้ จะมีการแสดงหรือบันทึกข้อมูลเพิ่มเติมไว้ ข้อมูลจะแสดงฟังก์ชันย่อย/ฟังก์ชัน Enter และ Exit พร้อมกับข้อมูลสำคัญอื่นๆ

   /SERVER servername  ป้อนเซิร์ฟเวอร์ระยะไกลเพื่อเรียกใช้สคริปต์

   /USER username      ป้อนชื่อผู้ใช้ที่จะใช้สำหรับการเชื่อมต่อระยะไกล (ต้องมีสวิตช์ PASS)  ระบบจะไม่ประมวลผลถ้าเป็นชื่อสำหรับการเชื่อมต่อในระบบ

   /PASS password      ป้อนรหัสผ่านเพื่อใช้กับสวิตช์ USER (ต้องมีสวิตช์ USER)


คุณสามารถใช้อักขระที่เป็นสัญลักษณ์การค้นหา เพื่อระบุมากกว่าหนึ่งแฟ้มในคำสั่ง เช่น: *       สตริงที่มีศูนย์อักขระหรือมากกว่า ?       อักขระเดียว

คุณสามารถระบุผู้ใช้มากกว่าหนึ่งรายในคำสั่ง คุณสามารถรวมสิทธิ์การเข้าถึงต่างๆ 


ใช้ Xcacls.vbs เพื่อดูสิทธิ์การใช้งาน


นอกจากนี้ คุณสามารถใช้ Xcacls.vbs เพื่อดูสิทธิ์การใช้งานสำหรับแฟ้มหรือโฟลเดอร์ ตัวอย่างเช่น ถ้าคุณมีโฟลเดอร์ชื่อ C:\Test ให้พิมพ์ข้อมูลต่อไปนี้ที่พร้อมท์คำสั่งเพื่อดูสิทธิ์การใช้งานโฟลเดอร์ จากนั้นกด ENTER:
xcacls.vbs c:\test
ตัวอย่างต่อไปนี้เป็นผลลัพธ์ทั่วไป:
C:\>XCACLS.VBS c:\test Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Starting XCACLS.VBS (Version: 3.4) Script at 6/11/2003 10:55:21 AM

Startup directory: "C:\test"

Arguments Used: Filename = "c:\test"



************************************************************************** Directory: C:\test

Permissions: Type     Username                Permissions           Inheritance

Allowed  BUILTIN\Administrators  Full Control          This Folder, Subfolde Allowed  NT AUTHORITY\SYSTEM     Full Control          This Folder, Subfolde Allowed  Domain1\User1           Full Control          This Folder Only Allowed  \CREATOR OWNER          Special (Unknown)     Subfolders and Files Allowed  BUILTIN\Users           Read and Execute      This Folder, Subfolde Allowed  BUILTIN\Users           Create Folders / Appe This Folder and Subfo Allowed  BUILTIN\Users           Create Files / Write  This Folder and Subfo

No Auditing set

Owner: Domain1\User1


หมายเหตุ ผลลัพธ์ของคำสั่ง xcacls.vbs c:\test ในตัวอย่างนี้ตรงกับข้อความที่แสดงในส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) บางคำอาจถูกตัดในหน้าต่างคำสั่ง

นอกจากนี้ผลลัพธ์ยังมีรุ่นของสคริปต์ ไดเรกทอรีเริ่มต้น และอาร์กิวเมนต์ที่ใช้

นอกจากนี้คุณยังสามารถใช้อักขระสัญลักษณ์การค้นหาเพื่อแสดงแฟ้มที่ตรงกันในไดเรกทอรีนั้น ตัวอย่างเช่น ถ้าคุณพิมพ์คำสั่งต่อไปนี้ แฟ้มทั้งหมดที่มีนามสกุล ".log" ที่อยู่ในโฟลเดอร์ C:\Test จะปรากฏ:
xcacls.vbs c:\test\*.log

ตัวอย่าง


คำสั่ง Xcacls.vbs ต่อไปนี้เป็นตัวอย่างของการใช้ Xcacls.vbs

xcacls.vbs c:\test\ /g domain\testuser1:f /f /t /e
คำสั่งนี้จะแก้ไขสิทธิ์ที่มีอยู่ เป็นการให้สิทธิ์การควบคุมแบบเต็มแก่ Domain\TestUser1 สำหรับแฟ้มทั้งหมดใต้ C:\Test โดยจะมีผลกับโฟลเดอร์ย่อยใต้ C:\Test และเปลี่ยนแฟ้มทั้งหมดที่พบ คำสั่งนี้จะไม่มีผลกับไดเรกทอรี
xcacls.vbs c:\test\ /g domain\testuser1:f /s /l "c:\xcacls.log"
คำสั่งนี้จะแทนที่สิทธิ์ที่มีอยู่ โดยจะให้สิทธิ์แก่ Domain\TestUser1 แบบเต็มสำหรับโฟลเดอร์ย่อยทั้งหมดใต้ C:\Test และจะเขียนบันทึกไปยัง C:\Xcacls.log คำสั่งนี้จะไม่มีผลกับแฟ้ม และไม่มีผลกับไดเรกทอรี
xcacls.vbs c:\test\readme.txt /o "machinea\group1"
คำสั่งนี้จะเปลี่ยนเจ้าของ Readme.txt เป็นกลุ่ม MachineA\Group1
xcacls.vbs c:\test\badcode.exe /r "machinea\group1" /r "domain\testuser1"
คำสั่งนี้จะยกเลิกสิทธิ์ไปยัง C:\Test\Badcode.exe สำหรับ MachineA\Group1 และสำหรับ Domain\TestUser1
xcacls.vbs c:\test\subdir1 /i enable /q
คำสั่งนี้จะเปิดใช้การรับค่าที่โฟลเดอร์ C:\Test\Subdir1 การทำงานนี้จะไม่แสดงเอาต์พุตทางหน้าจอ
xcacls.vbs \\servera\sharez\testpage.htm /p "domain\group2":14
คำสั่งนี้จะเชื่อมต่อระยะไกลไปยัง \\ServerA\ShareZ โดยใช้ Windows Management Instrumentation (WMI) จากนั้นจะรับค่าพาธท้องถิ่นสำหรับการใช้ร่วมกัน และใต้พาธนั้น จะเปลี่ยนสิทธิ์ของ Testpage.htm และเว้นสิทธิ์ที่มีอยู่ของ Domain\Group2 ไว้คงเดิม แต่จะเพิ่มสิทธิ์ 1 (อ่านข้อมูล) และ 4 (อ่านแอตทริบิวต์แบบขยาย) คำสั่งนี้จะลบสิทธิ์อื่นๆ บนแฟ้ม เนื่องจากไม่ได้ใช้สวิตช์ /e
xcacls.vbs d:\default.htm /g "domain\group2":f /server servera /user servera\admin /pass password /e
คำสั่งนี้ใช้ WMI เพื่อเชื่อมต่อระยะไกลเป็น ServerA\Admin ไปยัง ServerA จากนั้นให้สิทธิ์แบบเต็มสำหรับ Default.htm แก่ Domain\Group2 สิทธิ์ที่มีอยู่สำหรับ Domain\Group2 จะสูญหายและสิทธิ์อื่นๆ บนแฟ้มจะคงเดิม

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ Xcacls.exe คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
318754 วิธีการใช้ Xcacls.exe เพื่อปรับเปลี่ยนสิทธิ์ NTFS (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)

คุณสมบัติ

หมายเลขบทความ (Article ID): 825751 - รีวิวครั้งสุดท้าย: 29 ธันวาคม 2550 - Revision: 2.4
ใช้กับ
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional Edition
Keywords: 
kbhowtomaster KB825751

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com