Bản sao PowerShell DSC từ chia sẻ mạng


17

Tôi đang cố gắng sử dụng PowerShell DSC để sao chép nội dung thư mục từ chia sẻ mạng. Đây là mã:

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

Tuy nhiên, điều này không hoạt động - khi tôi chạy nó, tôi nhận được thông báo lỗi sau:

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

Tôi nhận được kết quả tương tự khi cố gắng cài đặt gói từ chia sẻ mạng hoặc trích xuất kho lưu trữ từ chia sẻ mạng. Tôi đang chạy PowerShell 4 trên Windows Server 2008 R2 SP1.

Có cách nào để sử dụng PowerShell DSC với chia sẻ mạng không?


Không phải là một giải pháp được mô tả trong liên kết này? powershellmagazine.com/2013/09/02/
Khăn

Cám ơn đã chỉ tôi hướng đi đúng. Tôi hoàn toàn không hiểu ý tôi vì chia sẻ trên cùng một máy và vì vậy tôi phải cấp quyền cho tài khoản HỆ THỐNG. Nếu bạn muốn đưa ra câu trả lời khi chỉ vào liên kết đó, tôi sẽ thưởng cho bạn tiền thưởng.
Richard

Câu trả lời:


14

Trình quản lý cấu hình cục bộ DSC chạy dưới dạng tài khoản HỆ THỐNG chứ không phải tài khoản người dùng của bạn. Do đó, nó sẽ không thể truy cập tài nguyên mạng trừ khi được cấp quyền rõ ràng.

Có hai tình huống có thể xảy ra. Chia sẻ trên cùng một máy với cấu hình DSC đang được áp dụng cho (hãy gọi máy này là A) hoặc chia sẻ trên một máy khác (hãy gọi máy này là B).

Nếu chia sẻ trên máy A, quyền READ phải được cấp cho người dùng HỆ THỐNG. Ví dụ:

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

Nếu chia sẻ trên máy B, quyền READ phải được cấp cho tài khoản máy tính của máy A. Ví dụ:

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

Nguồn: http://www.powershellmagazine.com/2013/09/02/copying-powershell-modules-and-custom-dsc-resource-USE-dsc/


5

Việc DSCchạy trên localhostđể áp dụng cấu hình. Điều này có nghĩa là các DSCtệp tài nguyên cần được phân phối cho mỗi máy sẽ được cấu hình thông qua DSC.

Do đó, quản lý quyền là rất quan trọng khi sao chép các tệp DSC từ chia sẻ.

DSCchạy trong NT AUTHORITY\SYSTEMtài khoản và trừ khi Credentialthuộc tính đã được đặt, Computer accountnó được sử dụng khi kéo các tệp từ chia sẻ mạng.

Do đó và tùy thuộc vào nơi các tệp được kéo từ đó, SYSTEMtài khoản cần phải được cấp readquyền trên một chia sẻ cục bộ và Computer accountnhu cầu được cấp readquyền trên một chia sẻ từ xa.

Đây là chi tiết cụ thể trong câu trả lời của Richards, giúp mở rộng cú pháp khôn ngoan trên nguồn blog gốc cho thông tin này.


0

Hiện tại tôi không có thời gian để xem xét thêm về vấn đề này, nhưng có vẻ như có thể chuyển an toàn thông tin đăng nhập cho Trình quản lý cấu hình cục bộ để sử dụng. Trong thực tế, trong blog đăng ví dụ của mình sử dụng tài nguyên Tệp để lấy các tệp từ chia sẻ mạng. Tôi hy vọng sẽ thử điều này sớm, sau đó quay lại để xác thịt tốt hơn câu trả lời này.

Blog TechNet: Bạn muốn bảo mật thông tin đăng nhập trong Cấu hình trạng thái mong muốn của Windows PowerShell? - bởi Travis Plunk


-2

Powershell gần như câm như vỏ cmd cũ. Nó vẫn có hỗ trợ rất hạn chế cho các đường dẫn UNC. Với ý nghĩ đó ... bạn đã thử đặt bí danh cho con đường UNC chưa? I E

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

Và sau đó tham khảo đường dẫn như UNCPath:\SomeFolder. Dọn dẹp Remove-PSDrivekhi bạn hoàn thành.

Ngoài ra, đôi khi bạn có thể chỉ định FileSystem::\\Server\SomeShare\SomeFolderlà đường dẫn. Tôi đã thấy những trường hợp điều này không hoạt động ... nhưng nó đáng để thử.


Trong bối cảnh này (dữ liệu cấu hình) FileSystem::\\Server\SomeShare\SomeFolderchắc chắn là con đường để đi
Mathias R. Jessen

2
Cảm ơn bạn đã gợi ý nhưng không may sử dụng một trong số chúng tôi nhận được thông báo lỗiRelative path is not supported
Richard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.