Author Posts

August 2, 2017 at 2:20 pm

When using composite resources, it becomes impossible to use PSDscResources, as it refuses to import. Worse, it's presence alone prevent the configuration from being run, thus making it impossible to create any mof

The error given is:

ImportClassResourcesFromModule : Exception calling "ImportClassResourcesFromModule" with "3" argument(s): "Resource name 'WindowsPackageCab' is already being used by another Resource or
Configuration."
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\PSDesiredStateConfiguration.psm1:2109 char:35
+ ... rcesFound = ImportClassResourcesFromModule -Module $mod -Resources $r ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [ImportClassResourcesFromModule], MethodInvocationException
+ FullyQualifiedErrorId : PSInvalidOperationException,ImportClassResourcesFromModule

I've opened an issue on Github, but maybe someone here has a clue about this problem?

The problem arise as soon as you import a composite resource inside a configuration and have PsDscResources 2.8.0.0 installed.

August 2, 2017 at 5:26 pm

I have exactly the same problem and so far I had no luck with resolving it.

September 8, 2017 at 2:58 pm

Problem found: The resolution thread is here

Basically, there seem to be a problem if we load a composite resource as a second argument. This doesn't work:

Import-DscResource -Module xActiveDirectory, YourCompositeRessource
Import-DscResource -Module PSDscResources -ModuleVersion 2.8.0.0

This does:

Import-DscResource -Module xActiveDirectory, 
Import-DscResource - Module YourCompositeRessource,
Import-DscResource -Module PSDscResources -ModuleVersion 2.8.0.0

No idea why, as loading more than one module on a line never gave us any problem until we tried to use a newer version of PsDscResources. I guess it loads it as "Import-Module" instead of "Import-DscResource" This is pure speculation though, but the end result is that it doesn't work. Separating it on it's own line works perfectly.