Je sais comment vous définissez cela pour le site Web IIS en lançant la commande suivante:
Set-WebConfigurationProperty -filter "/system.webServer/security/authentication/windowsAuthentication" -name enabled -value true -PSPath "IIS:\" -location $siteName
Mais je veux le configurer pour les applications à l'intérieur de ce site. Par exemple, le site Web IIS s'appelle "MySite" et contient deux applications. Je souhaite activer l'authentification Windows pour l'un et non pour l'autre. Donc, l'activation au niveau du site sera activée pour les deux et c'est ce que je ne veux pas.
Vous n'avez pas besoin de paramètres -PSPath
et -Location
séparés. Vous pouvez les combiner comme ceci:
-PSPath "IIS:\Sites\$SiteName\$AppName"
Donc, la commande réelle ressemblera à ceci:
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath "IIS:\Sites\$SiteName\$AppName"
Notez que vous pouvez rencontrer cette erreur:
Set-WebConfigurationProperty: cette section de configuration ne peut pas être utilisée sur ce chemin. Cela se produit lorsque la section est verrouillée au niveau parent. Le verrouillage est soit par défaut (overrideModeDefault = "Deny"), soit défini explicitement par une balise d'emplacement avec overrideMode = "Deny" ou par le legs allowOverride = "false".
Tomfanning sur ServerFault a fourni la solution ici . J'ai répété ses pas ici:
J'avais le problème de traiter les sections verrouillées et la réponse acceptée propose d'ouvrir une interface graphique pour la résoudre, ce que j'essaie d'éviter avec PowerShell en premier lieu.
Activer l'authentification Windows et désactiver l'authentification anonyme
$iisAppName = "MyApp"
Write-Host Disable anonymous authentication
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name Enabled -Value False -PSPath IIS:\ -Location "Default Web Site/$iisAppName"
Write-Host Enable windows authentication
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath IIS:\ -Location "Default Web Site/$iisAppName"
Comme indiqué dans la IIS documentation :
Les sections d’authentification sont généralement verrouillées, c’est-à-dire qu’elles ne peuvent pas être écrites dans un fichier web.config mais doit être écrit dans le fichier central fichier applicationhost.config à la place.
Nous devons utiliser les paramètres -PSPath
et -Location
.
Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location DemoSite/DemoApp
L'activation de l'authentification Windows ne fonctionne que si elle est installée.
install-windowsfeature web-windows-auth