คัดลอกไฟล์และโฟลเดอร์ไปยังคอมพิวเตอร์ของผู้ใช้ผ่าน GPO
คุณสามารถใช้นโยบายกลุ่มเพื่อคัดลอกไฟล์และโฟลเดอร์เฉพาะไปยังคอมพิวเตอร์ของผู้ใช้ในโดเมน Active Directory คุณสามารถวางไฟล์บนเดสก์ท็อป ในไดเร็กทอรีโปรไฟล์ผู้ใช้เฉพาะ หรือในโฟลเดอร์อื่นบนไดรฟ์ในเครื่อง ด้วย GPO คุณสามารถคัดลอกและอัปเดตไฟล์การกำหนดค่าต่างๆ ไฟล์ INI โปรแกรมเรียกทำงานแอป (EXE) DLL หรือสคริปต์จากพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้โดยอัตโนมัติ
การคัดลอกไฟล์โดยใช้การตั้งค่า Group Policy
ตัวอย่างเช่น ฉันต้องการคัดลอกไฟล์สองไฟล์ (
app.exeและ
settings.xml) ไปยังเดสก์ท็อปของผู้ใช้โดเมน Active Directory บางราย
สร้างโฟลเดอร์ที่ใช้ร่วมกันเพื่อจัดเก็บไฟล์ต้นฉบับที่คุณต้องการคัดลอกไปยังคอมพิวเตอร์ของผู้ใช้ อาจเป็นโฟลเดอร์ SMB ที่ใช้ร่วมกันบนไฟล์เซิร์ฟเวอร์หรือไดเร็กทอรี SYSVOL บนตัวควบคุมโดเมน (โฟลเดอร์นี้จะถูกจำลองโดยอัตโนมัติระหว่าง DC ทั้งหมดในโดเมนโดยใช้ DFS สะดวกในการใช้งานเนื่องจากช่วยลดภาระบน WAN ลิงค์). ฉันได้วางไฟล์ไว้ในโฟลเดอร์ Sysvol
\\a-d.site\SYSVOL\a-d.site\scripts\CorpApp
. ตรวจสอบให้แน่ใจว่ากลุ่ม ผู้ใช้ที่รับรองความถูกต้อง มีสิทธิ์ในการอ่านโฟลเดอร์นี้
สร้างกลุ่มความปลอดภัย Active Directory ใหม่ (CorpAPPUsers) โดยใช้ Active Directory Users และ Computers snap-in (
dsa.msc). คุณสามารถสร้างกลุ่มโดยใช้ PowerShell cmdlet นี้:
New-ADGroup CorpAPPUsers -path 'OU=Groups,OU=DE,dc=a-d,DC=com' -GroupScope Global -PassThru -Verboseเพิ่มผู้ใช้ในกลุ่มที่คุณต้องการให้เดสก์ท็อปคัดลอกไฟล์ผ่าน GPO โดยอัตโนมัติ:
Add-AdGroupMember -Identity CorpAPPUsers -Members asmith, bmuller, tweberเปิดคอนโซลการจัดการนโยบายกลุ่ม (
gpmc.msc);
สร้างวัตถุ GPO ใหม่ (CopyCorpApp) และเชื่อมโยงกับ OU ที่มีคอมพิวเตอร์ของผู้ใช้
แก้ไขการตั้งค่า GPO;
-
ขยายส่วนการตั้งค่านโยบายกลุ่มต่อไปนี้: ผู้ใช้ การกำหนดค่า -> การตั้งค่า -> การตั้งค่า Windows -> ไฟล์;
หากคุณต้องการคัดลอกไฟล์ไปยังคอมพิวเตอร์โดยไม่คำนึงถึงผู้ใช้ที่เข้าสู่ระบบ ควรใช้นโยบายที่คล้ายกันในส่วนการกำหนดค่าคอมพิวเตอร์ของ GPO
เลือกใหม่ -> ไฟล์;
ระบุไฟล์ต้นฉบับในโฟลเดอร์ที่ใช้ร่วมกันและเส้นทางเป้าหมายบนคอมพิวเตอร์ที่คุณต้องการคัดลอกไฟล์ไป หากไม่มีเส้นทางที่ระบุ เส้นทางนั้นจะถูกสร้างขึ้นโดยอัตโนมัติ อย่าลืมระบุชื่อเต็มของไฟล์เป้าหมาย (หากคุณระบุเพียงไดเร็กทอรีเป้าหมาย คุณจะได้รับข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ" เมื่อคัดลอกไฟล์)
คุณสามารถเลือกชื่อไฟล์ที่ต้องการได้ที่นี่ หรือคัดลอกไฟล์ทั้งหมดจากไดเร็กทอรีต้นทางพร้อมกันโดยระบุอักขระตัวแทน
*มี 4 การดำเนินการสำหรับการคัดลอกไฟล์โดยใช้ GPO:
สร้าง - ไฟล์จะถูกคัดลอกไปยังไดเร็กทอรีเป้าหมายก็ต่อเมื่อไม่มีอยู่ในนั้นเท่านั้น
แทนที่ - ไฟล์เป้าหมายบนคอมพิวเตอร์ของผู้ใช้จะถูกแทนที่ด้วยไฟล์ต้นฉบับเสมอ หากไฟล์ต้นฉบับมีขนาดใหญ่ ไฟล์นั้นจะถูกคัดลอกทุกครั้งที่มีการอัปเดต GPO ซึ่งอาจทำให้เครือข่ายโหลดสูง หากคุณต้องการแทนที่ไฟล์เพียงครั้งเดียว ให้เปิดใช้งานตัวเลือก 'นำไปใช้ครั้งเดียวและไม่ต้องนำไปใช้ซ้ำ' ในแท็บทั่วไป
อัปเดต (นโยบายเริ่มต้น) - หากมีไฟล์อยู่แล้วและ ไฟล์ต้นทางและปลายทางแตกต่างกัน ไม่ถูกแทนที่ด้วยไฟล์ต้นทาง (เฉพาะแอตทริบิวต์เท่านั้นที่จะถูกแทนที่) หากไม่มีไฟล์ ไฟล์นั้นจะถูกคัดลอก
ลบ - ลบไฟล์เป้าหมายคุณสามารถเลือกโฟลเดอร์เฉพาะบนคอมพิวเตอร์เป็นไดเร็กทอรีเป้าหมายหรือใช้ตัวแปรสภาพแวดล้อม หากต้องการคัดลอกไฟล์ไปยังเดสก์ท็อปของผู้ใช้ปัจจุบัน ให้ใช้
%DesktopDir%คุณสามารถดูรายการตัวแปรสภาพแวดล้อมทั้งหมดที่มีใน GPP ได้โดยกด F3
ต่อไปนี้คือรายการตัวแปรสภาพแวดล้อมที่สามารถใช้เป็นโฟลเดอร์ปลายทางเมื่อคัดลอกไฟล์โดยใช้ GPO:
- %AppDataDir%
โฟลเดอร์ Application Data ของผู้ใช้ปัจจุบัน
- %CommonAppdataDir%
โฟลเดอร์ข้อมูลแอปพลิเคชันของผู้ใช้ทั้งหมด
- %CommonDesktopDir%
เดสก์ท็อปของผู้ใช้ทั้งหมด
- %CommonProgramsDir%
ไดเรกทอรีโปรแกรมของผู้ใช้ทั้งหมด
- %CommonStartMenuDir%
โฟลเดอร์ Start Menu ของผู้ใช้ทั้งหมด
- %CommonStartUpDir%
ไดเรกทอรีเริ่มต้นสำหรับผู้ใช้ทั้งหมด
- %ComputerName%
ชื่อคอมพิวเตอร์ NetBIOS
- %DesktopDir%
เดสก์ท็อปของผู้ใช้ปัจจุบัน
- %DomainName%
ปัจจุบัน ชื่อโดเมน
- %LocalTime%
เวลาท้องถิ่นของคอมพิวเตอร์
- %LogonDomain%
โดเมนของผู้ใช้ปัจจุบัน
- %LogonServer%
ชื่อของตัวควบคุมโดเมนที่ผู้ใช้ได้รับการรับรองความถูกต้อง
- %LogonUser%
ชื่อผู้ใช้ปัจจุบัน
- %NetPlacesDir%
ไดเร็กทอรี My Network Places ของผู้ใช้
- %ProgramFilesDir%
ไดเร็กทอรีไฟล์โปรแกรม
- %ProgramsDir%
ไดเรกทอรีโปรแกรมของผู้ใช้
- %RecentDocumentsDir%
ไดเร็กทอรีเอกสารล่าสุดของผู้ใช้
- %SendToDir%
ไดเรกทอรีส่งของผู้ใช้
- %StartMenuDir%
เมนูเริ่มของผู้ใช้ปัจจุบัน
- %StartUpDir%
โฟลเดอร์เริ่มต้นของผู้ใช้ปัจจุบัน
- %SystemDir%
ไดเร็กทอรี Windows
- %SystemDrive%
ไดรฟ์ที่ติดตั้งระบบปฏิบัติการ
- %TempDir%
โฟลเดอร์ชั่วคราวของผู้ใช้
- %WindowsDir%
ไดเร็กทอรี Windows
หากต้องการคัดลอกไฟล์ไปยังเดสก์ท็อปของผู้ใช้ที่ต้องการ ให้เปิดแท็บ ทั่วไป ในการตั้งค่านโยบาย เปิดใช้งานตัวเลือก การกำหนดเป้าหมายระดับรายการ แล้วคลิก การกำหนดเป้าหมาย แข็งแรง>;
ในหน้าต่างถัดไป คุณสามารถเลือกตัวเลือกเพิ่มเติมสำหรับวิธีใช้ GPO ในกรณีของฉัน ฉันต้องการจำกัดนโยบายสำหรับสมาชิกกลุ่ม CorpAPPUsers เท่านั้น โดยคลิกรายการใหม่ -> กลุ่มความปลอดภัย และระบุกลุ่มผู้ใช้โดเมน
เนื่องจากเราได้เชื่อมโยง GPO กับหน่วยขององค์กรที่มีวัตถุคอมพิวเตอร์ (ไม่ใช่บัญชีผู้ใช้) คุณต้องเปิดใช้งานโหมดการประมวลผลย้อนกลับของ GPO เปิดใช้งานตัวเลือก กำหนดค่าโหมดการประมวลผลย้อนกลับของ Group Policy ของผู้ใช้=ผสาน ในการกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ -> ระบบ -> นโยบายกลุ่ม
จากนั้นอัปเดตการตั้งค่านโยบายกลุ่มบนคอมพิวเตอร์ไคลเอ็นต์ (
gpupdate /forceหรือออกจากระบบแล้วเข้าสู่ระบบอีกครั้ง) และตรวจสอบให้แน่ใจว่าไฟล์ทั้งสองถูกคัดลอกไปยังเดสก์ท็อปของผู้ใช้โดยอัตโนมัติ
ด้วยวิธีนี้ คุณสามารถคัดลอกสคริปต์ ไฟล์ปฏิบัติการของแอปพลิเคชัน หรือเครื่องมือระบบ (PsTools, iperf, Portqry ฯลฯ) ไปยังคอมพิวเตอร์ของผู้ใช้ คุณสามารถคัดลอกไฟล์ไปยัง Program Files และวางทางลัดบนเดสก์ท็อปผ่าน GPO
หากคุณต้องการคัดลอกไดเร็กทอรีไปยังคอมพิวเตอร์ของผู้ใช้ คุณต้องใช้รายการนโยบายกลุ่มจากส่วน การกำหนดค่าคอมพิวเตอร์ (ผู้ใช้) -> ค่ากำหนด -> การตั้งค่า Windows -> โฟลเดอร์ ตัวเลือกนี้ช่วยให้คุณสร้างไดเร็กทอรีบนคอมพิวเตอร์เป้าหมาย จากนั้นคุณสามารถคัดลอกไฟล์ต้นฉบับไปยังไดเร็กทอรีนี้ตามที่อธิบายไว้ข้างต้น
หากไฟล์ไม่ได้ถูกคัดลอกไปยังคอมพิวเตอร์ของผู้ใช้ คุณสามารถใช้เครื่องมือ gpresult.exe เพื่อหาสาเหตุที่นโยบายกลุ่มไม่ถูกนำไปใช้ ในการรับบันทึกโดยละเอียดของการดำเนินการคัดลอกไฟล์ GPO คุณสามารถเปิดใช้งานบันทึกภายใต้การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ -> ระบบ -> นโยบายกลุ่ม -> การบันทึกและการติดตาม เปิดใช้งานตัวเลือก กำหนดค่าการบันทึกและติดตามค่ากำหนดของไฟล์ และเลือกโหมด ข้อมูล คำเตือน และข้อผิดพลาด ในการตั้งค่านโยบาย
ตอนนี้คุณสามารถติดตามเหตุการณ์และข้อผิดพลาดทั้งหมดที่เกี่ยวข้องกับการคัดลอกไฟล์ผ่าน GPO บนไคลเอ็นต์ใน Event Viewer -> Application log เปิดใช้งานตัวกรองตามแหล่งที่มา ไฟล์นโยบายกลุ่ม
ในกรณีของฉัน ข้อผิดพลาด ID เหตุการณ์ 4098 ปรากฏขึ้นบนคอมพิวเตอร์ของผู้ใช้เมื่อคัดลอกไฟล์ผ่าน GPO:
The user '%CommonDesktopDir%' preference item in the 'CopyCorpApp {GPO_GUID}' Group Policy Object did not apply because it failed with error code '0x80070005 Access is denied.' This error was suppressed.ปัญหานี้แก้ไขได้โดยการให้สิทธิ์การอ่าน NTFS กับไฟล์ในไดเร็กทอรีต้นทางแก่กลุ่ม ผู้ใช้ที่รับรองความถูกต้อง
จะคัดลอกโฟลเดอร์และไฟล์ด้วย GPO Startup Script ได้อย่างไร
โปรดทราบว่าการตั้งค่านโยบายกลุ่มไม่อนุญาตให้คุณคัดลอกไดเร็กทอรีทั้งหมดที่มีโฟลเดอร์ย่อยและไฟล์ย่อยทั้งหมด หากคุณต้องการคัดลอกโฟลเดอร์ที่มีไฟล์จำนวนมาก หรือคุณต้องการให้เนื้อหาของโฟลเดอร์ผู้ใช้เป้าหมายได้รับการอัปเดตเสมอเมื่อไฟล์ใดๆ ในซอร์สได้รับการอัปเดต คุณสามารถสร้างสคริปต์การเข้าสู่ระบบแบบธรรมดาและเรียกใช้ผ่าน GPO .
มาสร้างสคริปต์เริ่มต้น GPO เพื่อคัดลอกไฟล์ใหม่ (และที่เปลี่ยนแปลง) ทั้งหมดจากไดเร็กทอรีต้นทางไปยังคอมพิวเตอร์ของผู้ใช้:
สร้างแบตช์ไฟล์ใน Sysvol: CopyCorpApp.bat:
IF EXIST "C:\CorpApp" EXIT MD "C:\CorpApp" xcopy \\fs01\Sources\CorpApp\*.* C:\CorpApp /e /y /k /r /d /iในบางกรณี ควรใช้คำสั่ง robocopy ที่ทรงพลังกว่าเพื่อคัดลอกไฟล์
สคริปต์นี้จะคัดลอกโครงสร้างไดเร็กทอรีทั้งหมดและไฟล์ทั้งหมดที่มีแอตทริบิวต์ เฉพาะไฟล์ใหม่หรือไฟล์ที่เปลี่ยนแปลงเท่านั้นที่จะถูกคัดลอก ซึ่งหมายความว่าทุกครั้งที่คุณรันสคริปต์หากไม่มีการเปลี่ยนแปลงในไดเร็กทอรีต้นทาง คำสั่ง xcopy จะไม่เขียนทับไฟล์
สร้าง GPO ใหม่ (ตามที่อธิบายไว้ข้างต้น) และกำหนดให้กับ OU ด้วยคอมพิวเตอร์ของผู้ใช้
ขยาย การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows -> สคริปต์ (เริ่มต้น/ปิดเครื่อง) เลือก การเริ่มต้น;
คลิกปุ่ม เพิ่ม และระบุเส้นทาง UNC ไปยังสคริปต์ของคุณบน SysVol
รีสตาร์ทคอมพิวเตอร์ของผู้ใช้และตรวจสอบให้แน่ใจว่าได้คัดลอกโฟลเดอร์ต้นทางเรียบร้อยแล้ว












