【问题标题】:Powershell DSC Pull Server throws internal error - Microsoft.Isam.Esent.Interop not foundPowershell DSC 拉取服务器引发内部错误 - 未找到 Microsoft.Isam.Esent.Interop
【发布时间】:2014-06-16 21:36:32
【问题描述】:

我已按照 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 而我没有它?

【问题讨论】:

    标签: windows powershell dsc


    【解决方案1】:

    似乎 xPSDesiredStateConfiguration 中的 PSDSCPullServer 资源默认使用 Esent 作为数据库提供程序,它仅适用于 Windows 8.1(不适用于 Server 2012)。我找到了一些文档here,其中包含一些我可以复制的代码。我只需要为我的拉取服务器编辑 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 存在)这一事实进一步证明了一些奇怪的事情正在发生。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我使用了您提到的模块中的 PSDSCPullServer 和 PSDSCComplianceServer 资源。这是一个 Windows 2012 服务器。我不知道数据库提供程序是如何设置的,我想它是由资源设置的。我在哪里可以更改?
      • 您的回答绝对让我朝着正确的方向前进。我已经发布了我自己的答案,以及我必须改变什么才能让它工作的细节。我希望你不会觉得我在这里试图窃取你的信用!
      • NP!这就是我的意思。 xPSDesiredStateConfiguration 模块有一个错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 2012-04-06
      相关资源
      最近更新 更多