1

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

Get-DscConfiguration :已超出 WBEM 服务器限制(例如内存、连接...)。在 line:1 char:1 + Get-DscConfiguration + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceBusy: (MSFT_DSCLocalConfigurationManager:root/Microsoft/...gurationManager) [获取-DscConfiguration],CimException + FullyQualifiedErrorId:MI RESULT 27,获取-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 错误有任何见解吗?

4

2 回答 2

0

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

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

于 2015-03-11T14:06:28.517 回答
0

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

问题是,Get-DSCResource它实际上并没有用作 DSC 的一部分(这意味着 LCM 不调用它,PowerShell 不使用它来生成配置,Start-DSCConfiguration不使用它等)。

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

当我编写自定义资源时,我实际上是在尝试变得Get-有用;通常通过内部拨打Set-和/或Test-致电Get-,但这样做可能是一个挑战。

出于这个原因,给定的资源可能没有经过良好的测试Get-DSCConfiguration

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

于 2015-03-02T19:41:00.413 回答