3

I'm trying to apply a DSC configuration that uses a resource from a module that is installed. However, when I run Start-DscConfiguration, I get this error:

The PowerShell DSC resource ******** does not exist at the PowerShell module path nor is it registered as a WMI DSC resource.
+ CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException
+ FullyQualifiedErrorId : DscResourceNotFound

However, when I log into the server and run Get-DscResource, the missing resource is there.

Why can't DSC find the resource?

splattered bits
  • 898
  • 2
  • 11
  • 23

2 Answers2

6

The version of the module the DSC resources are part of was different between my local computer and the server. On my local computer, where my configuration gets converted to MOF files, I had version 2.2.0 (code snipped for brevity):

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

But the server had version 2.1.0:

> Get-Module -ListAvailable

    Directory: C:\Program Files\WindowsPowerShell\Modules


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

This particular module is available on the PowerShell Gallery. Calling Update-Module got the latest version onto my server. I also could have downgraded my local computer.

splattered bits
  • 898
  • 2
  • 11
  • 23
  • You can protect yourself against future module version mismatches by installing the module with a with the -RequiredVersion parameter of Install-Module cmdlet. – Persistent13 Jun 28 '16 at 22:45
1

I ran into the same issue...it turns out my problem wasn't a module version mismatch, but a Powershell version mismatch. My workstation is version 5, but the end-point was version 4 (2012 R2 out the box).

After installing WMF 5.1 on the remote sever, it recognized and installed IIS using the xWebAdministration module.

Before that it was complaining it couldn't find it. The path variable was the same on another configured web server. Only difference was the Powershell version.

Asmar F
  • 11
  • 1