PowerShell DSC:xWebSite错误:所需的网站绑定对网站无效

时间:2017-05-06 00:52:28

标签: powershell azure dsc azure-automation

场景:尝试使用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"})
    })
    }

1 个答案:

答案 0 :(得分:1)

在DSC配置中在脚本资源之外使用的表达式在编译时执行。以下行将在管理计算机上执行,其中证书可能不存在,并将.mof文件中的指纹设置为NULL。您可以通过查看生成的mof文件来验证这一点。

CertificateThumbprint = $(Get-ChildItem cert:\LocalMachine\My | where { $_.Subject -match "WMSvc" } | select -First 1).Thumbprint

您需要将指纹指定为字符串值,或使用脚本资源设置绑定,以便将Get-ChildItem - 命令作为SetScript脚本块的一部分运行。