Назад | Перейти на главную страницу

Как использовать DSC для установки функции Windows .NET на машине, не являющейся сервером?

Обратите внимание на следующую конфигурацию DSC:

Configuration Example
{
     Import-DscResource –ModuleName PSDesiredStateConfiguration

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

Он включает .NET 4.5 на Windows Server. Но ресурс WindowsFeature работает только на сервере. Теперь я хотел бы добиться того же эффекта на не серверной машине. Как правильно выразить это в PowerShell DSC?

В WindowsFeature Ресурс DSC основан на Install-WindowsFeature командлет и доступен только на сервере.

Чтобы включить функции на клиенте Windows (т. Е. Не на сервере), вам необходимо использовать WindowsOptionalFeature ресурс, который работает через DISM.

Чтобы перечислить список функций в вашей конкретной версии, вы можете использовать Get-WindowsOptionalFeature -Online или DISM из командной строки: dism.exe /online /get-features.

Вы спросили о NET-Framework-45-Core. Например, это не отдельно устанавливаемая / съемная функция на клиенте Windows 10.

Чтобы определить функции DISM для любой конкретной функции Windows Server, вы можете посмотреть результаты (Get-WindowsFeature <name>).AdditionalInfo.InstallName. Например, функция DISM для NET-Framework-45-Core является NetFx4.

Обратите внимание, что пока DISM.exe и WindowsOptionalFeature также работают на Windows Server, это не рекомендуется, поскольку отношения между функциями на сервере более сложны, и эти отношения понимаются и управляются дополнительными метаданными, предоставляемыми с помощью командлетов * -WindowsFeature, а также диспетчера сервера и поставщика WMI. Непосредственная установка обнаруженных функций DISM, как описано выше, не обязательно приведет к установке всех необходимых или рекомендуемых дополнительных компонентов для правильной работы функции.