適用対象: Windows PowerShell 5.0
PowerShell 5.0 では、DSC リソースの個別バージョンをコンピューターに並べてインストールできます。 リソースモジュールは、フォルダーという名前のバージョンにリソースの個別バージョンを格納できます。
個別のリソースバージョンを並べてインストールする
Install-Module コマンドレットの MinimumVersion、MaximumVersion、および RequiredVersion パラメーターを使用して、インストールするモジュールのバージョンを指定できます。 バージョンを指定せずに Install-Module を呼び出すと、最新バージョンがインストールされます。
たとえば、 xFailOverCluster モジュールには複数のバージョンがあり、それぞれに xCluster リソースが含まれています。 バージョン番号を指定せずに Install-Module を呼び出すと、モジュールの最新バージョンがインストールされます。
PS> Install-Module xFailOverCluster
PS> Get-DscResource xCluster
ImplementedAs Name ModuleName Version Properties
------------- ---- ---------- ------- ----------
PowerShell xCluster xFailOverCluster 1.2.0.0 {DomainAdministratorCredential, ...
特定のバージョンのモジュールをインストールするには、 RequiredVersion を 1.1.0.0 に指定します。 これにより、指定されたバージョンがインストールされたバージョンと並べてインストールされます。
PS> Install-Module xFailOverCluster -RequiredVersion 1.1
これで、 Get-DSCResourceを使用すると、両方のバージョンのモジュールが一覧表示されます。
PS> Get-DscResource xCluster
ImplementedAs Name ModuleName Version Properties
------------- ---- ---------- ------- ----------
PowerShell xCluster xFailOverCluster 1.1 {DomainAdministratorCredential, Name, ...
PowerShell xCluster xFailOverCluster 1.2.0.0 {DomainAdministratorCredential, Name, ...
構成でのリソース・バージョンの指定
コンピュータに個別のリソースバージョンがインストールされている場合は、そのリソースを構成で使用するときに、そのリソースのバージョンを指定する必要があります。 これを行うには、Import-DscResource キーワードの ModuleVersion パラメーターを指定します。 複数のバージョンがインストールされているリソースのリソース・モジュールのバージョンを指定しないと、構成によってエラーが生成されます。
次の構成は、呼び出すリソースのバージョンを指定する方法を示しています。
configuration VersionTest
{
Import-DscResource -ModuleName xFailOverCluster -ModuleVersion 1.1
Node 'localhost'
{
xCluster ClusterTest
{
Name = 'TestCluster'
StaticIPAddress = '10.0.0.3'
DomainAdministratorCredential = Get-Credential
}
}
}
Import-DscResource の ModuleVersion パラメーターは、PowerShell 4.0 では使用できません。 PowerShell 4.0 では、モジュール仕様オブジェクトを Import-DscResource の ModuleName パラメーターに渡すことで、モジュール バージョンを指定できます。 モジュール仕様オブジェクトは、ModuleName キーと RequiredVersion キーを含むハッシュ テーブルです。 例えば次が挙げられます。
configuration VersionTest
{
Import-DscResource -ModuleName (@{ModuleName='xFailOverCluster'; RequiredVersion='1.1'} )
Node 'localhost'
{
xCluster ClusterTest
{
Name = 'TestCluster'
StaticIPAddress = '10.0.0.3'
DomainAdministratorCredential = Get-Credential
}
}
}
これは PowerShell 5.0 でも機能しますが、 ModuleVersion パラメーターを使用することをお勧めします。