web-dev-qa-db-ja.com

DSCを使用してサーバー以外のマシンに.NETWindows機能をインストールする方法は?

次のDSC構成を確認してください。

Configuration Example
{
     Import-DscResource –ModuleName PSDesiredStateConfiguration

     node localhost
     {
          WindowsFeature 'NetFramework45'
          {
               Name   = 'NET-Framework-45-Core'
               Ensure = 'Present'
          }
     }
}

これにより、WindowsServerで.NET4.5が有効になります。ただし、WindowsFeatureリソースはサーバー上でのみ機能します。ここで、サーバー以外のマシンでも同じ効果を得たいと思います。 PowerShellDSCでそれを表現する正しい方法は何でしょうか?

1
mark

WindowsFeatureDSCリソースは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機能を直接インストールしても、機能を正しく機能させるために必要な、または推奨される追加コンポーネントがすべてインストールされるとは限りません。

2
Matthew Wetmore