场景:尝试使用Azure自动化帐户使用DSC创建https网站。我得到以下错误。你有没有遇到同样的情况?任何帮助都会很棒。 HTTP绑定工作正常。
Windows 2012 R2
XWebAdministration模块版本:1.17.0.0
错误:PowerShell DSC资源MSFT_xWebsite无法执行Test-TargetResource功能,并显示错误消息:所需的网站绑定对网站无效
DSC节点配置:
foreach ($Site in $Node.Sites)
{
xWebSite "$($Site.Name)WebSite"
{
Ensure = "Present"
Name = $Site.Name
ApplicationPool = "$($Site.Name)"
PhysicalPath = $Site.Path
State = 'Started'
DependsOn = "[xWebAppPool]$($Site.Name)AppPool"
BindingInfo = MSFT_xWebBindingInformation
{
Protocol = 'https'
Port = $Site.Port
CertificateStoreName = 'MY'
CertificateThumbprint = $(Get-ChildItem cert:\LocalMachine\My | where { $_.Subject -match "WMSvc" } | select -First 1).Thumbprint
}
}
DSC配置:
$data = @{
AllNodes = @(
@{
Sites = @(
@{Name="website1";Port="8643";Path="C:\inetpub\www\website1";Apps="App1","App2"}, @{Name="website2";Port="9643";Path="C:\inetpub\www\website2";Apps="App3","App4"})
})
}
答案 0 :(得分:1)
在DSC配置中在脚本资源之外使用的表达式在编译时执行。以下行将在管理计算机上执行,其中证书可能不存在,并将.mof文件中的指纹设置为NULL
。您可以通过查看生成的mof文件来验证这一点。
CertificateThumbprint = $(Get-ChildItem cert:\LocalMachine\My | where { $_.Subject -match "WMSvc" } | select -First 1).Thumbprint
您需要将指纹指定为字符串值,或使用脚本资源设置绑定,以便将Get-ChildItem
- 命令作为SetScript脚本块的一部分运行。