実際のリソースオブジェクトをDSCで作成または削除できない場合、カスタムDSCリソースはどのように動作するべきですか?リソースオブジェクトを作成または削除できない場合、カスタムDSCリソースはどのように動作するべきですか?
具体的な例では、COM +アプリケーション、コンポーネント、およびInterfacesを管理するためのリソースを作成しています。アプリケーションとコンポーネントのリソースを作成するのは問題ありません。カタログからプログラムで作成したり削除したりすることができます。ただし、DLLからコンポーネントを作成すると、インターフェイスが自動的に作成されます。
インターフェイスプロパティ(つまり、QueuingEnabled
プロパティ)を更新できる必要があります。したがって、私は以下のようにCOM +インターフェイスの構成を説明することを意図したもの:
COMplusInterface MyInterface
{
Ensure = 'Present'
ApplicationID = 'BB5B8A1F-D70C-44BD-8ADD-E548DF39AACF'
ComponentDLLPath = 'C:\Program Files\MyApplication\bin\MyComponent.dll'
InterfaceName = 'MyInterface'
Description = 'This is my interface'
QueuingEnabled = $true
}
しかし、アプリケーションやコンポーネントは、まだこのリソースがエラーをスローする必要があり、存在しない場合は?同様にDLLがそのインタフェースを持たない場合も同様です。 Test-TargetResource
には$false
が返されますので、それはSet-TargetResource
を開始し、それではインターフェイスを作成できないためです。
それに続いて、Ensure
がAbsent
に設定されている場合、DSCリソースは何をする必要がありますか?インタフェースは、それが存在する場合は削除することはできません。コンポーネントを削除するだけで、それを行うことができます。私はすべてのインターフェイスのプロパティをデフォルト値に戻すべきですか?
すべて私には論理的に聞こえるよ、ありがとう! 'ApplicationID'、 'ComponentDLLPath'(またはむしろ' CLSID'だが、読み取り専用で自動生成され、ユーザーフレンドリーではない)と 'InterfaceName'特定のInterfaceリソースを一意に識別するために最低限必要なものです。 – Dijital
@Dijital okあなたのケースでリソースを一意に識別するものが何であるか分かりませんでした。ソートされているように聞こえます。また、特定のインターフェイスのすべてのプロパティを一度に設定することは意味をなさないため、[このリソースをシングルトンとして実装する](https://blogs.msdn.microsoft.com/powershell/ 2015/06/22/want-to-write-a-dsc-resource-only-a-single-instance-can-be-configured /)を使用します。 – briantist