Observe a seguinte configuração DSC:
Configuration Example
{
Import-DscResource –ModuleName PSDesiredStateConfiguration
node localhost
{
WindowsFeature 'NetFramework45'
{
Name = 'NET-Framework-45-Core'
Ensure = 'Present'
}
}
}
Ele habilita o .NET 4.5 em um Windows Server. Mas o recurso WindowsFeature só funciona no servidor. Agora, gostaria de alcançar o mesmo efeito em uma máquina não servidora. Qual seria a maneira correta de expressá-lo no PowerShell DSC?
O
WindowsFeature
recurso DSC é baseado noInstall-WindowsFeature
cmdlet e está disponível apenas no Servidor.Para habilitar recursos no cliente Windows (ou seja, não-servidor), você precisará usar o recurso WindowsOptionalFeature , que funciona no DISM.
Para enumerar uma lista de recursos em sua versão específica, você pode usar
Get-WindowsOptionalFeature -Online
ou DISM na linha de comando:dism.exe /online /get-features
.Você perguntou sobre
NET-Framework-45-Core
. Este não é um recurso instalável/removível separadamente no cliente Windows 10, por exemplo.Para identificar os recursos do DISM para qualquer recurso específico do Windows Server, você pode examinar os resultados do
(Get-WindowsFeature <name>).AdditionalInfo.InstallName
. Por exemplo, o recurso DISM paraNET-Framework-45-Core
éNetFx4
.Observe que, embora o DISM.exe e
WindowsOptionalFeature
também funcione no Windows Server, não é recomendado, pois as relações entre os recursos no Server são mais complicadas e essas relações são compreendidas e gerenciadas por metadados adicionais expostos por meio dos cmdlets *-WindowsFeature, bem como do Server Manager e um provedor WMI. A instalação direta dos recursos descobertos do DISM, conforme descrito acima, não instalará necessariamente todos os componentes adicionais necessários ou recomendados para que o recurso funcione corretamente.