Não é possível definir a senha no IIS 8 para o usuário do domínio como Identidade do ApplicationPool

5

Estou tentando definir uma conta de usuário de domínio como Identidade do ApplicationPool no IIS 8 (Windows 2012). Ao tentar isso usando o Console de Gerenciamento do IIS, sempre recebo um erro:

Value does not fall within the expected range.

Ao tentar definir a identidade usando o appcmd.exe, ele falha no comando, definindo o nome de usuário e a senha ou o comando apenas definindo a senha. Definir o nome de usuário não é problema.

Tentando definir o nome de usuário e a senha [FAIL]:

>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )

Tentando definir apenas o nome de usuário [SUCCESS]:

>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"

Tentando definir a senha depois de definir com sucesso o nome de usuário [FAIL]:

>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )

Eu adicionei o usuário do domínio ao grupo IIS_IUSRS e permiti que ele "fizesse logon como um serviço".

Alguma sugestão do que eu posso estar fazendo errado?

    
por Niels R. 06.09.2013 / 09:38

5 respostas

2

Como por Como você configura um IIS Web App para que ele possa acessar um compartilhamento de rede sem um AD?

Eu tive o mesmo problema, mas não consegui deixar a senha em texto sem formatação, então fui mais fundo e encontrei este artigo: Identidade personalizada do pool de aplicativos do IIS: o valor não está dentro do intervalo esperado

O passo fundamental para diagnosticar é olhar para os eventos certos:

To figure out how to resolve this, I went into the event viewer. There was nothing in the Application log, so I headed down to Applications and Services Logs => Microsoft => Windows => IIS-Configuration. The logs in here are disabled by default, so they have to be enabled. (To do so, right click the log, and choose Enable log.) Once enabled, re-run the attempt to set the identity, and refresh the view (Actions pane or F5), and voila!, now we have some more information on the error. In the results were two Errors (event ID 42 and 43).

Eu tive os mesmos erros de evento que no artigo:

ID 42: Failed to initialize the 'IISWASOnlyAesProvider' encryption provider in '\?\C:\windows\system32\inetsrv\config\applicationHost.config'. Please check your configuration.

ID 43: Failed to encrypt attribute 'Microsoft.ApplicationHost.AesProtectedConfigurationProvider'.

Então fiz o seguinte:

  • restaura uma versão antiga do arquivo ConfigEncKey.key (para c:\windows\System32\inetsrv\config )
  • substitua a seção <configProtectedData><providers> por uma antiga (em c:\windows\System32\inetsrv\config\applicationHost.config )

Em seguida, posso definir novamente uma identidade personalizada para o pool de aplicativos.

    
por 30.03.2015 / 15:35
1

Você pode pegar a chave privada de outro servidor e simplesmente importá-la para esse servidor exportando primeiro uma chave de outro servidor IIS que funcione: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 > aspnet_regiis -px "iisWasKey" "C: \ temp \ AESKeys.xml" -pri

Segundo, você pode restaurar a chave na máquina quebrada (copie a chave para o outro servidor e coloque-a no mesmo lugar): C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 > aspnet_regiis -pi "iisWasKey" "C: \ temp \ AESKeys.xml"

Terceiro, edite o arquivo c: \ windows \ system32 \ inetsrv \ applicationhost.config e use a seção configprotecteddata do servidor de trabalho conhecido para usar no lugar daquele já existente neste arquivo.

Parece-se com esta seção:                                

Se tudo der certo, você poderá testá-lo criando um pool de aplicativos e, em seguida, indo para configurações avançadas e executá-lo como DOMÍNIO \ usuário ou algum outro usuário que ele precise ser.

Tony Trus

    
por 19.06.2017 / 23:01
0

Verifique as ligações dos aplicativos que estão configurados neste pool de aplicativos, se tiverem alguma ligação incorreta, por exemplo. caracteres inválidos, espaço e assim por diante.

Fonte

    
por 06.09.2013 / 15:17
0

Eu também me deparei com esse problema no Windows Server 2012.

Se você remover o último parâmetro ao usar o appcmd, a senha, você conseguirá alterar o tipo de identidade e definir o nome de usuário.

Eu nunca descobri por que não consegui definir a senha, então recuei para editar meu arquivo applicationHost.config diretamente. Infelizmente com a senha está em texto claro.

<configuration>
   ...
    <system.applicationHost>
        <applicationPools>
            ...
            <add name="test-pool" managedRuntimeVersion="v4.0">
                <processModel identityType="SpecificUser" 
                  userName="MyAccountName" password="P@ssw0rd" />
            </add>
            ...
        </applicationPools>
        ...
    </system.applicationHost>
    ...
</configuration>

Além de configurar o pool de aplicativos para usar uma conta específica, também fiz o seguinte:

1) Incluída a conta no grupo IIS_IUSRS que indiretamente lhe dá direitos de Logon como Trabalho em Lote.

2) Execute o seguinte comando para conceder direitos ao usuário

aspnet_regiis -ga <your_app_pool_user>

Veja mais: Como criar uma conta de serviço para um aplicativo ASP.NET 2.0 (MSDN)

3) Reiniciei o WAS e o IIS para garantir que as alterações na participação no grupo de contas sejam atendidas.

C:> net stop was /y
C:> net start w3svc
    
por 21.06.2014 / 00:21
0

Tente alterar /section:applicationPools para /section:system.applicationHost/applicationPools e adicionar /commit:apphost ao final

appcmd set config /section:system.applicationHost/applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd /commit:apphost

    
por 12.11.2014 / 01:42

Tags