2

我已按照 Powershell.org 中的说明进行操作DSC Book中的说明设置 http 拉取服务器(Windows 2012 服务器)以与 DSC 一起使用。我设置了 http 拉取服务器,然后制作了要拉取的配置,然后设置我的节点的 LCM 以拉取并运行配置。

我可以在Task Scheduler/Microsoft/Windows/Desired State Configuration下的节点上看到计划任务,所以我知道至少有些工作。但是,我的配置没有运行。当我查看Apps&Svcs/Microsoft/Windows/Desired State Configuration/Operational Log下的事件日志时,我看到以下事件:

Job {E0B6977A-E34F-4EDD-8455-E555063CD3DD} : 
This event indicates that failure happens when LCM is trying to get the configuration from pull server using download manager WebDownloadManager. ErrorId is 0x1. ErrorDetail is The attempt to get the action from server http://pullserver.local:8080/PSDSCPullServer/Action(ConfigurationId='adaba4f6-b2b6-420d-a1dd-3714106451d6')/GetAction returned unexpected response code InternalServerError.

当我在启用 CustomErrors 后手动点击该 URL 时,出现以下错误:

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Isam.Esent.Interop, Version=6.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

我尝试用谷歌搜索这个错误(没有运气),但我找不到关于这个 DLL 的有用信息。看起来它应该与 Windows 的某些部分一起提供,但我没有在我的系统上看到它。我不愿意从那些“DLL 下载器”站点之一下载它。

任何想法为什么 DSC 拉服务器似乎需要这个 DLL 而我没有它?

4

2 回答 2

5

xPSDesiredStateConfiguration 中的 PSDSCPullServer 资源似乎默认使用 Esent 作为数据库提供程序,它仅适用于 Windows 8.1(不适用于 Server 2012)。我在这里找到了一些文档,其中包含一些我可以复制的代码。我只需要为我的拉取服务器编辑 web.config 并更改它:

<add key="dbprovider" value="ESENT" />
<add key="dbconnectionstr" value="C:\Program Files\WindowsPowerShell\DscService\Devices.edb" />

有了这个:

<add key="dbprovider" value="System.Data.OleDb" />
<add key="dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\WindowsPowerShell\DscService\Devices.mdb;"/>

原始配置试图指向 Devices.edb(在我的系统上不存在,.mdb 存在)这一事实进一步证明了一些时髦的事情正在发生。

于 2014-06-17T19:59:45.750 回答
1

你用了什么方法?资源工具包中的 xPSDesiredConfiguration 模块还是手动步骤?我自己没有读过 DSC 书。所以,我不知道他们在推荐什么。

Microsoft.Isam.Esent.Interop 程序集是 ESE 数据库提供程序。但是,您只需要将此提供程序用于 Blue OS (Windows 8.1)。您将哪个操作系统用于拉取服务器?对于除 Blue OS 之外的所有受支持的操作系统,您应该为 devices.mdb 使用 Jet 提供程序。

于 2014-06-17T06:31:38.653 回答