2015-10-06 3 views
1

Я пишу некоторую логику для DSC, чтобы проверить, ведется ли переговоры: Kerberos находится в списке поставщиков для проверки подлинности Windows на одном из наших веб-сайтов. Я написал логику для проверки подлинности Windows и убедитесь, что функция включена:Верните IIS Windows Authentication Provider в PowerShell для сценария конфигурации желаемого состояния

Script ActiveSyncAuthentication 
      { 
       SetScript = { 
        Set-WebConfiguration system.webServer/security/authentication/windowsAuthentication -PSPath IIS:\ -Location 'Default Web Site/MySite' -Value @{enabled="True"} 
       } 
       TestScript = { 
        return ((Get-WebConfigurationProperty //system.webServer/security/authentication/windowsAuthentication -PSPath IIS:\ -Location 'Default Web Site/MySite' -Name Enabled) -eq "True") 
       } 
       GetScript = { }  
      } 

Я знаю, что я могу добавить в список поставщиков с ниже:

Add-WebConfiguration -Filter system.webServer/security/authentication/windowsAuthentication/providers -PSPath IIS:\ -Location 'Default Web Site/MySite' -Value Negotiate:Kerberos 

Однако, я m изо всех сил пытается вернуть это с помощью Get-WebConfiguration или Get-WebConfigurationProperty.

ответ

1

Вы можете использовать это:

 $WinAuthen = Get-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -PSPath $PSPath -Name enabled | Select Name,Value 
    $WinProviders = Get-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -PSPath $PSPath -Name Providers 
    $WinProviders = $WinProviders.Collection | Select Value 
+0

Если вы делаете это таким образом, он будет копировать Windows Auth провайдеров для сайта, которые были унаследованы, что, вероятно, не желаемое поведение. – brianary