为什么 DSC 找不到已安装的资源?

为什么 DSC 找不到已安装的资源?

我正在尝试应用使用已安装模块中的资源的 DSC 配置。但是,当我运行 时Start-DscConfiguration,出现此错误:

PowerShell DSC 资源 ******** 在 PowerShell 模块路径中不存在,也未注册为 WMI DSC 资源。
+ CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [],CimException
+ FullyQualifiedErrorId : DscResourceNotFound

但是,当我登录服务器并运行时Get-DscResource,缺少的资源那里。

为什么DSC找不到资源?

答案1

我的本地计算机和服务器之间的 DSC 资源所属模块的版本不同。在我的本地计算机上,我的配置被转换为 MOF 文件,我使用的是版本 2.2.0(为简洁起见,代码被删减):

instance of ******** as $********1ref
{
 ModuleName = "********";
 ModuleVersion = "2.2.0";
};

但是服务器有2.1.0版本:

> Get-Module -ListAvailable

    Directory: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------       
Script     2.1.0      ********                            ********

此特定模块可在PowerShell 库。呼叫Update-Module将最新版本发送到我的服务器上。我也可以降级我的本地计算机。

答案2

我遇到了同样的问题……结果发现我的问题不是模块版本不匹配,而是 Powershell 版本不匹配。我的工作站是版本 5,但终端是版本 4(出厂时为 2012 R2)。

在远程服务器上安装 WMF 5.1 后,它使用 xWebAdministration 模块识别并安装 IIS。

在此之前,它抱怨找不到它。路径变量在另一个配置的 Web 服务器上是相同的。唯一的区别是 Powershell 版本。

相关内容