2017-05-06 3 views
0

シナリオ:Azure Automationアカウントを使用してDSCを使用してhttps Webサイトを作成しようとしています。私は以下のエラーを受け取ります。あなたは同じシナリオに直面しましたか?どんな助けも素晴らしいでしょう。 HTTPバインディングが正常に動作しています。PowerShell DSC:xWebSiteエラー:Webサイトに適切なWebサイトバインディングがありません

のWindows 2012 R2

XWebAdministrationモジュールのバージョン:1.17.0.0

エラー:PowerShellのDSCリソースMSFT_xWebsiteは、エラーメッセージを表示してテスト-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

httpsサイトを1つだけ追加するとどうなりますか? – CtrlDot

+0

まだ同じ問題です。 xwebsiteが証明書thumbprint.ifでgetコマンドをサポートしていないように見えます。私は証明書の拇印を文字列として入力します。それは正常に動作します。基本的に値を動的に渡すことはできません。 – CKS

+0

変数を上位に設定して渡すことができます文字列として – CtrlDot

答えて

0

DSC構成のスクリプトリソースの外部で使用される式は、コンパイル時に実行されます。次の行は管理コンピュータ上で実行され、証明書が存在しない可能性があり、.mof-fileの拇印をNULLに設定します。これは、生成されたmofファイルを調べることで確認できます。

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

あなたは、文字列値として拇印を指定するか、またはあなたがSetScript-スクリプトブロックの一部としてGet-ChildItem -commandを実行できるところバインディングを設定するには、スクリプト・リソースを使用する必要があります。

+0

ねえ、Frode、あなたの返事をお寄せいただきありがとうございます。私はあなたが示唆したことをやろうとしましたが、同じ問題です。 – CKS

+0

GetScript = {} TestScript = {$ False} SetScript = { $ certificatestore = $(Get-ChildItem cert:\ LocalMachine \ My | {$ _ Subject -match "WMSvc"} | select -First 1) write-host "これは$ certificatestore" } }であり、bindinginfoではこのCertificateThumbprint = "$($ certificatestore.Thumbprint)"を試しています。しかし、これは同じ問題です。これはあなたが提案したものですか?エラー:希望のウェブサイトのバインディングがウェブサイトに有効でない – CKS

+0

いいえ、setscriptで適切なコマンドレットを使用してバインディングを追加してください(testscriptとgetscriptも正しく設定してください)。拇印AFAIKに静的な値を指定できない場合は、xWebsiteを使用してbindinginfoを設定することはできません。 –

関連する問題