安全地启动DSC配置(UseSsl),无需提供ComputerName

时间:2017-01-10 10:51:46

标签: ssl dsc

TL; DR我如何使用多个节点通过SSL start-dscconfiguration

DSC支持在配置中提供多个节点的功能。一个常见的例子

$configData = @{

     AllNodes = @(
           @{
                NodeName = "COMPUTER1";
                Parameter1 = "Foo";
            },
            @{
                NodeName = "COMPUTER2";
                Parameter1 = "Bar";
            }
     )
}

configuration InstallIIS {

         Node $AllNodes.NodeName {

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

$mofs = InstallIIS -ConfigurationData $configData 
Start-DscConfiguration -Path $mofs -Verbose -Wait

您可能已经意识到,此配置(安装IIS)将应用于COMPUTER1和COMPUTER2(将生成2个文件)。

默认情况下,此示例将使用WinRM over HTTP。正如所有优秀的程序员都知道的那样,你应该考虑HTTPS选项;我也是。

以下是Start-DscConfiguration示例,使用带有-UseSsl标志的HTTPS(WinRM):

    $creds = New-Object System.Management.Automation.PSCredential ("mydomain\mike", (ConvertTo-SecureString "ILikeCatsAlot" -AsPlainText -Force))

    $sessionOptions = New-CimSessionOption -UseSsl #note the -UseSsl

    $computerName = "COMPUTER1" #Oh dear i have to pass the computer name

    $session = New-CimSession -Credential $creds -SessionOption $sessionOptions -ComputerName $computerName

    Start-DscConfiguration -Path $mofs -CimSession $session

如您所见,我需要向-ComputerName提供CimSession参数,这是不好的,因为我想将此配置应用于所有节点。似乎我已经失去了在$configdata

中提供多个节点的能力

使用DSC,如何在不需要为会话提供特定计算机的情况下启动overWinRM(传输:https)配置?

2 个答案:

答案 0 :(得分:1)

根据评论中的说明,目前这不是Start-DSCConfiguration支持的功能。如果您想向产品团队推荐该功能,请在PowerShell User Voice

中提出问题

更新:感谢您在用户声音上提交this issue

答案 1 :(得分:0)

您是否尝试构建DSC Pull服务器(https或SMB)? SMB被加密(SMBv3使用AES 256)并且非常简单(涉及某些语法和重命名)。 HTTPS Pull允许报表服务器集中管理您的计算机,并使用TLS(如前所述)。