PowerShell DSC copy จากการแชร์เครือข่าย


17

ฉันกำลังพยายามใช้ PowerShell DSC เพื่อคัดลอกเนื้อหาของโฟลเดอร์จากเครือข่ายที่ใช้ร่วมกัน นี่คือรหัส:

Configuration TestSetup {
    Node localhost {
        File Test {
            SourcePath = "\\Server\SomeShare\SomeFolder"
            DestinationPath = "E:\test"
            Recurse = $true
            Type = "Directory"
        }
    }
}

อย่างไรก็ตามมันใช้งานไม่ได้ - เมื่อฉันเรียกใช้ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

The related file/directory is: \\Server\SomeShare\SomeFolder.
The path cannot point to the root directory or to the root of a net share.
SourcePath must be specified if you want to configure the destination directory recursively. Make sure that SourcePath is a directory and that it is accessible.
    + CategoryInfo          : InvalidArgument: (:) [], CimException
    + FullyQualifiedErrorId : MI RESULT 4
    + PSComputerName        : localhost

The SendConfigurationApply function did not succeed.
    + CategoryInfo          : InvalidArgument: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MI RESULT 4
    + PSComputerName        : localhost

ฉันได้รับผลลัพธ์ที่คล้ายกันเมื่อพยายามติดตั้งแพคเกจจากเครือข่ายที่ใช้ร่วมกันหรือดึงข้อมูลที่เก็บถาวรจากเครือข่ายที่ใช้ร่วมกัน ฉันใช้ PowerShell 4 บน Windows Server 2008 R2 SP1

มีวิธีใช้ PowerShell DSC กับการแชร์เครือข่ายหรือไม่


ไม่ใช่วิธีการแก้ปัญหาที่อธิบายไว้ในลิงค์นี้หรือไม่? powershellmagazine.com/2013/09/02/…
ErikE

ขอบคุณที่ชี้นำฉันในทิศทางที่ถูกต้อง มันไม่ได้ทำให้ฉันไปถึงที่นั่นเพราะการแชร์อยู่บนเครื่องเดียวกันดังนั้นฉันจึงต้องให้สิทธิ์กับบัญชีระบบ หากคุณต้องการคำตอบในการชี้ไปที่ลิงค์นั้นฉันจะให้รางวัลแก่คุณ
Richard

คำตอบ:


14

DSC Local Configuration Manager ทำงานเป็นบัญชี Local System ไม่ใช่บัญชีผู้ใช้ของคุณ ดังนั้นจึงไม่สามารถเข้าถึงทรัพยากรเครือข่ายได้เว้นแต่จะได้รับการอนุญาตอย่างชัดเจน

มีสองสถานการณ์ที่เป็นไปได้ การแบ่งใช้อยู่บนเครื่องเดียวกันกับการกำหนดค่า DSC (ขอเรียกเครื่องนี้ว่า A) หรือการแชร์อยู่บนเครื่องอื่น (เรียกเครื่องนี้ว่า B)

หากการแบ่งใช้อยู่บนเครื่อง A ต้องมีการอนุญาตการอ่านให้กับผู้ใช้ SYSTEM ตัวอย่างเช่น:

net share SomeShare=C:\SomeShare /GRANT:"NT AUTHORITY\SYSTEM",READ

หากการแชร์อยู่บนเครื่อง B คุณต้องได้รับอนุญาตให้อ่านบัญชีคอมพิวเตอร์ของเครื่อง A ตัวอย่างเช่น

net share SomeShare=C:\SomeShare /GRANT:DOMAIN\MachineA$,READ

ที่มา: http://www.powershellmagazine.com/2013/09/02/copying-powershell-modules-and-custom-dsc-resources-using-dsc/


5

DSCวิ่งบนlocalhostในการสั่งซื้อเพื่อนำไปใช้กำหนดค่า วิธีนี้แฟ้มทรัพยากรจะต้องมีการกระจายไปยังแต่ละเครื่องซึ่งก็คือการกำหนดค่าผ่านทางDSCDSC

การจัดการสิทธิ์จึงมีความสำคัญเมื่อทำการคัดลอกไฟล์ DSC จากการแชร์

DSCทำงานภายใต้NT AUTHORITY\SYSTEMบัญชีและหากไม่Credentialได้ตั้งค่าคุณลักษณะComputer accountจะใช้เมื่อดึงไฟล์จากเครือข่ายที่ใช้ร่วมกัน

ดังนั้นและขึ้นอยู่กับตำแหน่งที่ดึงไฟล์SYSTEMบัญชีจะต้องได้รับreadอนุญาตในการแชร์ในท้องที่และComputer accountจำเป็นต้องได้รับreadอนุญาตจากการแชร์จากระยะไกล

นี่คือรายละเอียดที่ชัดเจนในคำตอบของ Richards ซึ่งจะขยายไวยากรณ์ที่ชาญฉลาดในแหล่งข้อมูลดั้งเดิมของบล็อกสำหรับข้อมูลนี้


0

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

บล็อก TechNet: ต้องการรับรองข้อมูลรับรองในการกำหนดค่าสถานะที่ต้องการของ Windows PowerShell หรือไม่ - โดย Travis Plunk


-2

Powershell เกือบจะเป็นใบ้เหมือนเปลือก cmd เก่า มันยังคงมีการสนับสนุนที่ จำกัด มากสำหรับเส้นทาง UNC เมื่อทราบแล้ว ... คุณได้ลองใช้นามแฝงเส้นทาง UNC แล้วหรือยัง กล่าวคือ

New-PSDrive -Name UNCPath -PSProvider FileSystem -Root \\Server\SomeShare\

UNCPath:\SomeFolderและจากนั้นก็หมายถึงเส้นทางเป็น ล้างข้อมูลRemove-PSDriveเมื่อเสร็จแล้ว

นอกจากนี้บางครั้งคุณสามารถระบุFileSystem::\\Server\SomeShare\SomeFolderเป็นเส้นทาง ฉันเคยเห็นกรณีที่ไม่สามารถใช้งานได้ ... แต่มันก็คุ้มค่าที่จะยิง


ในบริบทนี้ (ข้อมูลการกำหนดค่า) FileSystem::\\Server\SomeShare\SomeFolderเป็นวิธีที่จะไปแน่นอน
Mathias R. Jessen

2
ขอบคุณสำหรับคำแนะนำ แต่น่าเสียดายที่ใช้อย่างใดอย่างหนึ่งฉันได้รับข้อความแสดงข้อผิดพลาดRelative path is not supported
Richard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.