PowerShell DSC - 不为 Web 服务器安装嵌套组件

PowerShell DSC - not installing nested components for Web-Server

我写了PowerShell DSC Configuration。它有效但不如预期。我正在尝试在其下安装 Web-Server 和其他功能。当我是 运行 脚本时,它只安装 Web Server (IIS) 而没有安装其他任何东西。

我的配置是这样的:

$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"

您需要为每个功能命名的 WindowsFeature:

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

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

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

...

https://technet.microsoft.com/en-gb/library/dn282127.aspx

查看 'IncludeAllSubFeature' 标志