来自网络共享的PowerShell DSC副本

Modified on: Thu, 15 Aug 2019 02:00:03 +0800

我正在尝试使用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

尝试从网络共享安装软件包或从网络共享中提取存档时,我得到类似的结果。我正在Windows Server 2008 R2 SP1上运行PowerShell 4。

有没有办法将PowerShell DSC用于网络共享?

作者:Richard

最佳答案

DSC本地配置管理器作为本地SYSTEM帐户运行,而不是您的用户帐户。因此,除非获得明确的权限,否则它将无法访问网络资源。

有两种可能的情况。共享位于与应用DSC配置相同的机器上(让我们称之为本机A)或共享位于不同的机器上(让我们称之为本机B)。

如果共享位于计算机A上,则需要向SYSTEM用户授予READ权限。例如:

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

如果共享位于计算机B上,则需要将READ权限授予计算机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/

作者:Richard

相关问答

添加新评论