2017-08-14 14 views
0

私は複合リソースを持っています。私の理解では、コンポジットリソースは、リソースのように扱われる構成の集合です。私はリソースをPowerShellモジュールと考える(ただし、そうではない)。DSC:カスタムリソースを複合リソースに追加する

コンポジットリソース:現在のファイル構造は次のようになります

カスタムリソース:私は、次のファイル構造を生産しているxDSCResourceDesignerを使用してカスタムDSCのリソースを、書かれている

…1 Modules 
    └ 2 DefaultConfiguration 
     └ 3 {version} 
      ├ 4 DSCResources 
      │ ├ 5 hApplyGpo 
      │ │ ├ 5a hApplyGpo.psd1 
      │ │ └ 5b hApplyGpo.schema.psm1 
      │ └ 6 hStoragePool 
      │   ├ 6a hStoragePool.psd1 
      │   └ 6b hStoragePool.schema.psm1 
      └ 4a DefaultConfiguration.psd1 

… 7 Modules 
    └ 8 hApplyGpo 
     └ 9 1.0.0.0 
      ├ 10 DSCResources 
      │  └ 11 hApplyGpo 
      │  ├ 11a hApplyGpo.psm1 
      │  └ 11b hApplyGpo.schema.mof 
      └ 10a hApplyGpo.psd1 

is possib (Import-DscResource -ModuleName hApplyGpo)によって参照される別個のリソース(モジュール)である必要がありますか?hApplyGpoDefaultConfiguration内にあるか、またはhApplyGpoが5b

カスタムリソースからのファイルは、複合リソース構造内でどこに移動する必要がありますか?私はすぐに11を5とマージすることを考えていますが、hApplyGpo.psd1(5aと10a)はどうなりますか?

TIA

答えて

1

複合リソースモジュールは、カスタムスクリプトリソースモジュールと同じ構造を有しています。唯一の違いは、Get、Set、およびTest-TargetResource関数を定義するPSM1ファイルがないことです。 DSCResourcesフォルダ内のフォルダを、カスタムリソースモジュールからコンポジットリソースのDSCResourcesフォルダにコピーすることも、その逆も可能です。

たとえば、GithubにあるcWindowsOSモジュールを確認してください。カスタムリソースと同じリソースモジュール内の複合リソースを結合します。

0

@ravikanthしかし、私のリソースは複数の複合リソースと複数のリソースを持っているため、完全な解決策ではありませんでした。 thisに埋め込まれた鍵は、複合リソースのImport-DscResource -ModuleName {modulename}ではなく、Import-DscResource -Name {resourcename}を使用することです。

私は、この質問を投稿し、新しいカスタムリソースを作成し、今のようになります複合リソース含むので、公平なビットを行ってきた。例としてcrApplyGpo.schema.psm1を取る

… Modules 
    └ hMyResource 
     ├ DSCResources 
     │ ├───crApplyGpo 
     │ │  crApplyGpo.psd1 
     │ │  crApplyGpo.schema.psm1 
     │ │ 
     │ ├───crUpdateDriveLetter 
     │ │  crUpdateDriveLetter.psd1 
     │ │  crUpdateDriveLetter.schema.psm1 
     │ │ 
     │ ├───ARC_hApplyGpo 
     │ │  ARC_hApplyGpo.psm1 
     │ │  ARC_hApplyGpo.schema.mof 
     │ │ 
     │ └───ARC_hUpdateDriveLetter 
     │   ARC_hUpdateDriveLetter.psm1 
     │   ARC_hUpdateDriveLetter.schema.mof 
     │ 
     ├ hMyResource.psd1 
     └ hMyResource.psm1 

Configuration crApplyGpo 
{ 
    [cmdletbinding()] 
    Param 
    (
     [ValidateSet("Present","Absent")] 
     [String]$Ensure = "Present" 
    ) 

    Import-DscResource -Name hApplyGpo 
    #Import-DscResource -ModuleName hMyResource #This doesn't work in a composite resource 

    hApplyGpo hApplyGpo 
    { 
     RegistryValue = 0 
     Ensure = $Ensure 
    } 
} 

しかし、「トップレベル」構成では、私は、使用しますImport-DscResource -ModuleName hMyResource

HTH

関連する問題