【问题标题】:PowerShell DSC File Resource causing WBEM error导致 WBEM 错误的 PowerShell DSC 文件资源
【发布时间】:2015-03-02 17:14:58
【问题描述】:

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

Get-DscConfiguration :已超出 WBEM 服务器限制(例如内存、连接...)。 在行:1 字符:1 + 获取 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,但是那个会引发内存错误,所以一旦我向系统添加更多内容,我至少可以从测试。但是 Get-DSCConfiguration 仍然不起作用。

有人了解 WBEM 错误吗?

【问题讨论】:

  • 此错误还应该在应用程序(基于内存)事件日志中包含一个事件,其中包含有关违反 WBEM 限制的更多详细信息。如果你发送那个,我们可以从那里开始。此外,您能否发送 $psversiontable WBEM 是 DSC LCM 运行的基础架构,并且显然此操作超出了允许的资源配额。

标签: powershell dsc


【解决方案1】:

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

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

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

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

因此,给定资源可能没有经过Get-DSCConfiguration 的良好测试。

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

【讨论】:

  • 所以我一直在使用 Get-DSCConfiguration,因为我正处于早期测试阶段,想在客户端验证配置。但我想从长远来看,这不是我需要做的事情,只要我看到“一致性引擎已成功运行”的 DSC 事件日志。我会知道一切都很好。
  • 您可以使用Invoke-CimMethod -Namespace 'root/Microsoft/Windows/DesiredStateConfiguration' -ClassName 'MSFT_DSCLocalConfigurationManager' -MethodName 'PerformRequiredConfigurationChecks' -Arguments @{ 'Flags' = [uint32]1 } -Verbose 手动申请,这也可以向您展示很多东西。 DSC Resource Kit 中的 xDscDiagnostics 也有助于阅读日志。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多