インストールされているリソースの特定のバージョンをインポートする
適用先:Windows PowerShell 5.0
PowerShell 5.0 では、DSC リソースの異なるバージョンを 1 台のコンピューターにサイド バイ サイドでインストールできます。 リソース モジュールでは、異なるバージョンのリソースをバージョンの名前のフォルダーに格納できます。
リソースの異なるバージョンのサイド バイ サイド インストール
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 でも動作しますが、PowerShell 5.0 では、ModuleVersion パラメーターを使用することをお勧めします。