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)配置?
答案 0 :(得分:1)
根据评论中的说明,目前这不是Start-DSCConfiguration支持的功能。如果您想向产品团队推荐该功能,请在PowerShell User Voice
中提出问题更新:感谢您在用户声音上提交this issue。
答案 1 :(得分:0)
您是否尝试构建DSC Pull服务器(https或SMB)? SMB被加密(SMBv3使用AES 256)并且非常简单(涉及某些语法和重命名)。 HTTPS Pull允许报表服务器集中管理您的计算机,并使用TLS(如前所述)。