无法在 Powershell DSC 资源的执行之间缓存或传递状态

Cannot cache or pass state between executions of Powershell DSC resource

我正在处理 DSC 资源 (cChoco),该资源当前依赖外部实用程序 (choco list) 来收集 Test-TargetResource 所需的信息。我的问题是我必须调用的实用程序非常慢,并且由于 cChoco 安装了许多程序,它目前必须为 DSC MOF 文件中的每个实例提取已安装软件的完整列表。

我想出的解决此问题的唯一方法是提取已安装应用程序的列表并将其写入磁盘,然后从文件中读回以供后续运行使用,但是这对我来说有点麻烦。除了写入文件之外,是否有任何普遍接受的设计模式用于在 DSC 资源或同一资源的实例之间传递状态? DSC/Mof 实施对 PowerShell 施加的限制似乎需要一种功能性方法来设计资源,因此如果没有普遍接受的 "right" 方法在 DSC 中实现这一点,我可以借用一些东西来自功能更强大的编程语言?

如果更多的背景知识会有所帮助,请查看 https://github.com/chocolatey/cChoco/issues/90

DSC 中无法在资源(以及同一资源的实例)之间共享数据。这是一个公开的问题:https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/13399734-returning-information-from-dsc-resource-to-another