ฉันพบปัญหา เขียนสคริปต์ที่บีบอัดไฟล์ pdf ผ่านโปรแกรม และถ่ายโอนสิทธิ์ไปยังไฟล์ใหม่โดยคัดลอกจากไฟล์เก่าเพื่อแยกการเข้าถึงไฟล์ใหม่
นี่คือส่วนหนึ่งของรหัสที่ฉันมีปัญหา
$owner = $origFile.GetAccessControl().GetOwner([System.Security.Principal.SecurityIdentifier])
$newFile = รับรายการ -เส้นทาง $PathoutFile
$FileSecurity = วัตถุใหม่ System.Security.AccessControl.FileSecurity
$FileSecurity.SetOwner(เจ้าของ$)
[System.IO.File]::SetAccessControl($newFile, $FileSecurity)
รับ Acl -เส้นทาง $origFile | Set-Acl -Path $newFile
ปัญหาของฉันคือ:
ฉันเรียกใช้สคริปต์โดยใช้สิทธิ์ของผู้ดูแลระบบโดเมน ทุกอย่างทำงานได้ดี ถ้าฉันใช้บัญชีผู้ใช้โดเมนและให้สิทธิ์สูงสุดแก่ไดเร็กทอรี ไฟล์บีบอัดจะถูกบันทึกไว้ในนั้น และในกรณีนี้ ฉันได้รับข้อผิดพลาด âพยายามดำเนินการโดยไม่ได้รับอนุญาต
ฉันไม่ต้องการเรียกใช้สคริปต์ภายใต้บัญชีผู้ดูแลระบบด้วยเหตุผลง่ายๆ ฉันเชื่อว่าสิทธิ์ดังกล่าวซ้ำซ้อนในการดำเนินการนี้ ฉันกำลังเรียนรู้และทำผิดพลาด แต่ฉันต้องการเรียนรู้วิธีเขียนสคริปต์ที่ดีและจัดการกฎการเข้าถึงที่จำเป็นสำหรับงานของพวกเขาอย่างมีความสามารถ ดังนั้นฉันขอให้คุณช่วยฉันหาสิ่งที่ฉันต้องทำเพื่อให้สิทธิ์ถูกกำหนดเมื่อใช้ สคริปต์. ฉันค้นหาข้อมูลใน google เกี่ยวกับเรื่องนี้แต่ไม่พบข้อมูลที่ครอบคลุม ฉันพบข้อมูลที่คุณไม่สามารถดำเนินการได้หากไม่มีสิทธิ์ของผู้ดูแลระบบในการเปลี่ยนเจ้าของ แต่ฉันไม่เข้าใจว่าทำไมฉันจึงไม่สามารถโอนสิทธิ์ไปยังไฟล์ใหม่ได้ในกรณีนี้ โปรดช่วยฉันในการแก้ปัญหานี้
การตั้งค่าเจ้าของจากไฟล์เก่าเป็นไฟล์ใหม่เป็นงานที่ไม่บังคับ
การดำเนินการ P.s ดำเนินการบนเครือข่ายที่ใช้ร่วมกันและผู้ใช้ภายใต้สคริปต์ที่กำลังเรียกใช้สามารถเข้าถึงแบบเต็มโฟลเดอร์เครือข่ายอยู่บน Win Serv 2008 SP2 และสคริปต์ทำงานบน Windows 10 Pro
ขอบคุณล่วงหน้า.