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

คัดลอกไฟล์และโฟลเดอร์ไปยังคอมพิวเตอร์ของผู้ใช้ผ่าน 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

. ตรวจสอบให้แน่ใจว่ากลุ่ม ผู้ใช้ที่รับรองความถูกต้อง มีสิทธิ์ในการอ่านโฟลเดอร์นี้

  1. สร้างกลุ่มความปลอดภัย 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
  2. เปิดคอนโซลการจัดการนโยบายกลุ่ม (

    gpmc.msc

    );

  3. สร้างวัตถุ GPO ใหม่ (CopyCorpApp) และเชื่อมโยงกับ OU ที่มีคอมพิวเตอร์ของผู้ใช้

  4. แก้ไขการตั้งค่า GPO;

  5. ขยายส่วนการตั้งค่านโยบายกลุ่มต่อไปนี้: ผู้ใช้ การกำหนดค่า -> การตั้งค่า -> การตั้งค่า Windows -> ไฟล์;

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

  6. เลือกใหม่ -> ไฟล์;

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

    คุณสามารถเลือกชื่อไฟล์ที่ต้องการได้ที่นี่ หรือคัดลอกไฟล์ทั้งหมดจากไดเร็กทอรีต้นทางพร้อมกันโดยระบุอักขระตัวแทน

    *
  8. มี 4 การดำเนินการสำหรับการคัดลอกไฟล์โดยใช้ GPO:
    สร้าง - ไฟล์จะถูกคัดลอกไปยังไดเร็กทอรีเป้าหมายก็ต่อเมื่อไม่มีอยู่ในนั้นเท่านั้น
    แทนที่ - ไฟล์เป้าหมายบนคอมพิวเตอร์ของผู้ใช้จะถูกแทนที่ด้วยไฟล์ต้นฉบับเสมอ หากไฟล์ต้นฉบับมีขนาดใหญ่ ไฟล์นั้นจะถูกคัดลอกทุกครั้งที่มีการอัปเดต GPO ซึ่งอาจทำให้เครือข่ายโหลดสูง หากคุณต้องการแทนที่ไฟล์เพียงครั้งเดียว ให้เปิดใช้งานตัวเลือก 'นำไปใช้ครั้งเดียวและไม่ต้องนำไปใช้ซ้ำ' ในแท็บทั่วไป
    อัปเดต (นโยบายเริ่มต้น) - หากมีไฟล์อยู่แล้วและ ไฟล์ต้นทางและปลายทางแตกต่างกัน ไม่ถูกแทนที่ด้วยไฟล์ต้นทาง (เฉพาะแอตทริบิวต์เท่านั้นที่จะถูกแทนที่) หากไม่มีไฟล์ ไฟล์นั้นจะถูกคัดลอก
    ลบ - ลบไฟล์เป้าหมาย

  9. คุณสามารถเลือกโฟลเดอร์เฉพาะบนคอมพิวเตอร์เป็นไดเร็กทอรีเป้าหมายหรือใช้ตัวแปรสภาพแวดล้อม หากต้องการคัดลอกไฟล์ไปยังเดสก์ท็อปของผู้ใช้ปัจจุบัน ให้ใช้

    %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

  10. หากต้องการคัดลอกไฟล์ไปยังเดสก์ท็อปของผู้ใช้ที่ต้องการ ให้เปิดแท็บ ทั่วไป ในการตั้งค่านโยบาย เปิดใช้งานตัวเลือก การกำหนดเป้าหมายระดับรายการ แล้วคลิก การกำหนดเป้าหมาย แข็งแรง>;

  11. ในหน้าต่างถัดไป คุณสามารถเลือกตัวเลือกเพิ่มเติมสำหรับวิธีใช้ GPO ในกรณีของฉัน ฉันต้องการจำกัดนโยบายสำหรับสมาชิกกลุ่ม CorpAPPUsers เท่านั้น โดยคลิกรายการใหม่ -> กลุ่มความปลอดภัย และระบุกลุ่มผู้ใช้โดเมน

  12. เนื่องจากเราได้เชื่อมโยง GPO กับหน่วยขององค์กรที่มีวัตถุคอมพิวเตอร์ (ไม่ใช่บัญชีผู้ใช้) คุณต้องเปิดใช้งานโหมดการประมวลผลย้อนกลับของ GPO เปิดใช้งานตัวเลือก กำหนดค่าโหมดการประมวลผลย้อนกลับของ Group Policy ของผู้ใช้=ผสาน ในการกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ -> ระบบ -> นโยบายกลุ่ม

  13. จากนั้นอัปเดตการตั้งค่านโยบายกลุ่มบนคอมพิวเตอร์ไคลเอ็นต์ (

    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 เพื่อคัดลอกไฟล์ใหม่ (และที่เปลี่ยนแปลง) ทั้งหมดจากไดเร็กทอรีต้นทางไปยังคอมพิวเตอร์ของผู้ใช้:

  1. สร้างแบตช์ไฟล์ใน 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 จะไม่เขียนทับไฟล์

  2. สร้าง GPO ใหม่ (ตามที่อธิบายไว้ข้างต้น) และกำหนดให้กับ OU ด้วยคอมพิวเตอร์ของผู้ใช้

  3. ขยาย การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows -> สคริปต์ (เริ่มต้น/ปิดเครื่อง) เลือก การเริ่มต้น;

  4. คลิกปุ่ม เพิ่ม และระบุเส้นทาง UNC ไปยังสคริปต์ของคุณบน SysVol

  5. รีสตาร์ทคอมพิวเตอร์ของผู้ใช้และตรวจสอบให้แน่ใจว่าได้คัดลอกโฟลเดอร์ต้นทางเรียบร้อยแล้ว

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