PowerShell DSC文件资源导致WBEM错误

时间:2015-03-02 17:14:59

标签: powershell dsc

我正在尝试使用文件资源来复制大量文件,其中大约20,000个文件跨越3000个目录。虽然DSC确实可以用于部署文件,但是当我尝试测试它们时遇到了问题。如果我在资源中只有几个文件,那么一切正常,但是如果我在那个破坏的东西中加载我的全套文件。我可以在目标节点上获得Test-DSCConfiguration并获得True结果(在我的测试服务器上将内存从4 gigs增加到16 gigs之后),但Get-DSCConfiguration会抛出此错误:

Get-DscConfiguration:已超出WBEM服务器限制(例如内存,连接......)。 在行:1个字符:1 + Get-DscConfiguration + ~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo:ResourceBusy:(MSFT_DSCLocalConfigurationManager:root / Microsoft / ... gurationManager)[获取    -DscConfiguration],CimException     + FullyQualifiedErrorId:MI RESULT 27,Get-DscConfiguration

配置很简单:

File ServerBox { Ensure = "Present" Type = "Directory" Recurse = $true MatchSource = $true Force = $true Checksum = "modifiedDate" SourcePath = "\\DevOps\ServerBox" DestinationPath = "D:\ServerBox" }

起初我认为问题是内存,因为我甚至无法运行Test-DSCConfiguration,但是那个引发了内存错误,所以一旦我向系统添加了更多内容,我至少可以从中获得True结果测试。但是Get-DSCConfiguration仍无法正常运行。

任何人都对WBEM错误有任何了解吗?

2 个答案:

答案 0 :(得分:0)

不可否认,这是一个猜测,但我认为Get-DSCConfiguration可能只是没有经过足够的测试,并且达到某种内部限制。

问题是,Get-DSCResource实际上并未用作部分DSC(意味着LCM不会调用它,PowerShell不会在生成配置时使用它,Start-DSCConfiguration不使用它,等)。

如果你手动调用它只会被调用,所以在很多方面它现在只是一个存根。

当我编写自定义资源时,我实际上试图使Get-有用;通常是在内部调用Set-和/或Test-调用Get-,但这样做可能是一个挑战。

因此,使用Get-DSCConfiguration对给定资源进行良好测试是可行的。

抱歉,我对错误本身没有任何了解。文件资源不是脚本资源;我认为它实际上是本机编译的代码,所以很可能只有微软可以回答这个问题。

答案 1 :(得分:0)

您可以尝试增加WSMAN会话限制。以下是有关此问题的一些信息:http://blogs.msdn.com/b/powershell/archive/2010/05/03/configuring-wsman-limits.aspx

MaxMemoryPerShellMB增加到更大的值,然后尝试使用相同的资源。

相关问题