次のDSC構成を確認してください。
Configuration Example
{
Import-DscResource –ModuleName PSDesiredStateConfiguration
node localhost
{
WindowsFeature 'NetFramework45'
{
Name = 'NET-Framework-45-Core'
Ensure = 'Present'
}
}
}
これにより、WindowsServerで.NET4.5が有効になります。ただし、WindowsFeatureリソースはサーバー上でのみ機能します。ここで、サーバー以外のマシンでも同じ効果を得たいと思います。 PowerShellDSCでそれを表現する正しい方法は何でしょうか?
WindowsFeature
DSCリソースはInstall-WindowsFeature
コマンドレットに基づいており、サーバーでのみ使用できます。
Windowsクライアント(つまり、サーバー以外)で機能を有効にするには、DISM上で機能する WindowsOptionalFeature リソースを使用する必要があります。
特定のバージョンの機能のリストを列挙するには、コマンドラインからGet-WindowsOptionalFeature -Online
またはDISMを使用できます:dism.exe /online /get-features
。
あなたはNET-Framework-45-Core
について尋ねました。これは、たとえばWindows10クライアントに個別にインストール/削除できる機能ではありません。
特定のWindowsServer機能のDISM機能を特定するには、(Get-WindowsFeature <name>).AdditionalInfo.InstallName
の結果を確認できます。たとえば、NET-Framework-45-Core
のDISM機能はNetFx4
です。
DISM.exeとWindowsOptionalFeature
はWindowsServerでも機能しますが、サーバーの機能間の関係はより複雑であり、これらの関係は* -WindowsFeatureコマンドレットを通じて公開される追加のメタデータによって理解および管理されるため、お勧めしません。 、およびサーバーマネージャーとWMIプロバイダー。上記のように検出されたDISM機能を直接インストールしても、機能を正しく機能させるために必要な、または推奨される追加コンポーネントがすべてインストールされるとは限りません。