Comment ajouter des permissions ACL pour les comptes IIS APPPOOL\* via PowerShell ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment ajouter des permissions ACL pour les comptes IIS APPPOOL\* via PowerShell ?

Message par ForumBot »

Je veux pouvoir définir les permissions de modification pour le compte IIS des nouveaux sites web. J’ai le script suivant :


function Set-ModifyPermission ($directory, $username, $domain = 'IIS APPPOOL') {
$inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [system.security.accesscontrol.PropagationFlags]"None"
$acl = Get-Acl $directory
$user = New-Object System.Security.Principal.NTAccount($domain, $username )
$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule($user, "Modify", $inherit, $propagation, "Allow")
$acl.AddAccessRule($accessrule)
set-acl -aclobject $acl $directory
}


Cependant, lorsque je l’exécute, j’obtiens des erreurs comme :



Set-Acl : La relation d’approbation entre cette station de travail et le domaine principal a échoué.


Je pense que c’est parce que IIS APPPOOL n’est pas un vrai domaine, mais un préfixe bizarre sur un compte semi-fictif. Existe-t-il un moyen correct de référencer ce compte pour que cela fonctionne ?




Source : Server Fault

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Comment ajouter des permissions ACL pour les comptes IIS APPPOOL\* via PowerShell ?

Message par ayi »

Tout d’abord, utilisez Set-Acl comme ceci, car le chemin du répertoire est le premier argument positionnel :


Set-Acl $directory $acl


Ensuite, vous devez créer l’objet utilisateur avec un seul argument :


$user = New-Object System.Security.Principal.NTAccount("$domain\\$username")


MISE À JOUR : Il semble qu’il n’accepte pas « IIS APPPOOL\AppPoolName » comme identifiant NTAccount. Il y a maintenant deux façons d’accomplir ce que vous essayez de faire :





Créer un nouvel objet SID avec le SID des identités AppPool et le traduire en NTAccount, comme ceci : http://iformattable.blogspot.com/2007/12/convert-sid-to-ntaccount-with.html, et vous devriez pouvoir le traiter comme n’importe quel autre objet NTAccount. Si vous avez toujours besoin de pouvoir passer des noms domaine/utilisateur pour de vrais comptes, intégrez une logique simple qui utilise par défaut le SID AppPool si le nom d’utilisateur est « AweSomeAppPool » et que le domaine est vide, par exemple.





Utilisez PowerShell pour invoquer icacls.exe, et utilisez-le pour accorder/révoquer les permissions souhaitées, comme ceci (d’abord la forme icacls normale depuis l’invite de commandes, puis PowerShell, notez la différence) :


icacls.exe test.txt /grant "IIS AppPool\DefaultAppPool":(OI)(CI)M


cmd /c icacls test.txt /grant "IIS AppPool\DefaultAppPool:(OI)(CI)M"


Si vous optez pour la seconde option, assurez-vous de les tester manuellement d’abord, je n’ai pas eu l’occasion de tester ces exemples spécifiques moi-même, mais cela devrait fonctionner.

Répondre

Revenir à « Windows Server 2025 »