J'utilise IIS 8.5 sur une boîte Windows 2012 R2 Core. J'ai créé un nouveau pool d'applications appelé "MyNewAppPool". J'ai une instance de site Web appelée "MyNewWebsite.com" s'exécutant dans le pool d'applications "MyNewAppPool". L'identité utilisée pour "MyNewAppPool" est "ApplicationPoolIdentity".
Si j'ai bien compris, je peux attribuer des autorisations de sécurité pour les pools d'applications dans IIS 8.5 en utilisant les comptes virtuels locaux générés automatiquement, qui seront nommés "IIS AppPool\{Nom du pool d'applications}".
Ainsi, dans l'Explorateur Windows sur le répertoire "MyNewWebsite.com", je devrais être en mesure d'attribuer des autorisations de lecture/écriture pour le compte d'utilisateur virtuel "IIS AppPool\MyNewAppPool". Je ne trouve pas ce compte d'utilisateur auquel attribuer des autorisations. Je recherche l'emplacement de l'ordinateur local et non l'ensemble du domaine. Je peux trouve le compte "IIS AppPool\DefaultAppPool", mais je ne souhaite pas exécuter MyNewWebsite.com sous DefaultAppPPool, je souhaite l'exécuter sous le pool d'applications MyNewAppPool.
Quelqu'un peut-il me dire, s'il vous plaît, pourquoi je ne trouve pas le compte virtuel généré automatiquement pour MyNewAppPool?
Vous ne trouverez jamais l'identité de pool d'applications synthétisée dans la boîte de dialogue de recherche d'autorisations. Il suffit de taper le nom de l'identité du pool comme ceci:
Via GUI:
Cliquez sur le bouton Vérifier les noms :
Via la ligne de commande:
Vous pouvez également utiliser ICACLS
à partir d'une ligne de commande administrateur/Powershell:
icacls c:\wwwroot\mysite /grant "IIS AppPool\MyNewAppPool":(CI)(OI)(M)
La réponse ci-dessus fonctionne très bien, mais n'oubliez pas d'utiliser le nom du serveur plutôt que le nom de domaine. Je me suis un peu raccroché pour essayer de comprendre pourquoi cela ne résolvait pas:
J'avais le même problème dans Server 2012 - pour une raison quelconque, les comptes virtuels n'étaient pas créés (ou ils n'étaient pas utilisables). - Je crois que cela est lié au service AppHostSvc
ou NetMan
qui ne fonctionne pas. - En fin de compte, j’ai opté pour une approche de type fusil de chasse (ce n’est pas recommandé, vous devriez essayer de faire le moins possible pour un environnement de production, mais ce PowerShell pourrait vous sortir du pétrin dans votre environnement de développement):
#Requires -Version 4
#Requires -RunAsAdministrator
#######################################
$DebugPreference = "SilentlyContinue";
$VerbosePreference = "SilentlyContinue";
$WarningPreference = "Continue";
$ErrorActionPreference = "Stop";
Set-PSDebug -Strict;
Set-StrictMode -Version 3;
#######################################
Get-WindowsOptionalFeature -Online `
| where { $_.FeatureName -ilike "*IIS*" -and $_.State -eq "Disabled" } `
| % { Enable-WindowsOptionalFeature -Online -FeatureName $_.FeatureName -All };
iisreset
Get-Service | ? { $_.ServiceName -eq "W3SVC" } | Start-Service;
Get-Service | ? { $_.ServiceName -eq "W3SVC" } | Set-Service -StartupType Automatic;
Get-Service | ? { $_.ServiceName -eq "WMSvc" } | Start-Service;
Get-Service | ? { $_.ServiceName -eq "WMSVC" } | Set-Service -StartupType Automatic;
Get-Service | ? { $_.ServiceName -eq "AppHostSvc" } | Start-Service;
Get-Service | ? { $_.ServiceName -eq "AppHostSvc" } | Set-Service -StartupType Automatic;
Get-Service | ? { $_.ServiceName -eq "Netman" } | Start-Service;
Get-Service | ? { $_.ServiceName -eq "Netman" } | Set-Service -StartupType Automatic;
iisreset