2 correcções no meu script para que funcione.
Eu removi a instalação do recurso Web-Cert-Auth, porque o Web-Cert-Auth é para o mapeamento de certificado do IIS (que eu não preciso). Recurso do Windows Web-Client-Auth é para mapeamento de certificado de cliente do AD, que eu preciso.
Em seguida, adicionei este script in-line:
# (Active Directory) Client Certificate Mapping Authentication should be enabled
Script EnableClientCertificateAuthentication
{
GetScript = {
Return @{
Result = [string]$((Get-WebConfiguration -filter /system.webServer/security/authentication/clientCertificateMappingAuthentication).enabled)
}
}
TestScript = {
If ((Get-WebConfiguration -filter /system.webServer/security/authentication/clientCertificateMappingAuthentication).enabled) {
Write-Verbose "ClientCertificateAuthentication is on"
Return $true
} Else {
Write-Verbose "ClientCertificateAuthentication is off"
Return $false
}
}
SetScript = {
Write-Verbose "Enabling ClientCertificateAuthentication"
Set-WebConfigurationProperty -filter /system.webServer/security/authentication/clientCertificateMappingAuthentication -name enabled -value true -PSPath IIS:\
}
DependsOn = "[WindowsFeature]Web-Client-Auth"
}