0
votes

I have written PowerShell DSC Configuration. It works but not as expected. I am trying to install Web-Server and other features underneath it. When i am running the script, it only installs Web Server (IIS) and nothing else.

This is how my Configuration looks like:

$MyConfigData = @{
    AllNodes = @(
        @{NodeName = 'myserver.corp.mycompany.net';Role='TestServer'}
     );
}


configuration TestDSC
{
    param (        
    ) 
    node $allnodes.NodeName
    {
        WindowsFeature Web
        {Name = "Web-Server"; Ensure = "Present"}
        {Name = "Web-WebServer"; Ensure = "Present"}
        {Name = "Web-Common-http"; Ensure = "Present"}
        {Name = "Web-Default-Doc"; Ensure = "Present"}
        {Name = "Web-Dir-Browsing"; Ensure = "Present"}
        {Name = "Web-Http-Errors"; Ensure = "Present"}
        {Name = "Web-Static-Content"; Ensure = "Present"}
        {Name = "Web-Health"; Ensure = "Present"}
        {Name = "Web-Http-Logging"; Ensure = "Present"}
        {Name = "Web-Performance"; Ensure = "Present"}
        {Name = "Web-Stat-Compression"; Ensure = "Present"}
        {Name = "Web-Dyn-Compression"; Ensure = "Present"}
        {Name = "Web-Security"; Ensure = "Present"}
        {Name = "Web-Filtering"; Ensure = "Present"}
        {Name = "Web-Basic-Auth"; Ensure = "Present"}
        {Name = "Web-Windows-Auth"; Ensure = "Present"}
        {Name = "Web-App-Dev"; Ensure = "Present"}
        {Name = "Web-Net-Ext45"; Ensure = "Present"}
        {Name = "Web-Asp-Net45"; Ensure = "Present"}
        {Name = "Web-ISAPI-Ext"; Ensure = "Present"}
        {Name = "Web-ISAPI-Filter"; Ensure = "Present"}
        {Name = "Web-Ftp-Server"; Ensure = "Present"}
        {Name = "Web-Mgmt-Tools"; Ensure = "Present"}
        {Name = "Web-Mgmt-Console"; Ensure = "Present"}
        {Name = "Web-Mgmt-Compact"; Ensure = "Present"}

    }
} 


TestDSC -ConfigurationData $MyConfigData -OutputPath "E:\DSCConfig\TestDSC"
2

2 Answers

1
votes

You need to have WindowsFeature with a name for each feature:

WindowsFeature Server
{
    Name = "Web-Server" 
    Ensure = "Present"
}

WindowsFeature WebServer
{
    Name = "Web-WebServer" 
    Ensure = "Present"
}

WindowsFeature CommonHttp
{
    Name = "Common-http" 
    Ensure = "Present"
}

...