web-dev-qa-db-ja.com

アプリケーションユーザーIDとしてドメインユーザーのパスワードをIIS 8に設定できません。

IIS 8(Windows 2012)でApplicationPool Identityとしてドメインユーザーアカウントを設定しようとしています。IIS管理コンソールを使用してこれを試行すると、常にエラー:

値が期待される範囲内にありません。

Appcmd.exeを使用してIDを設定しようとすると、ユーザー名とパスワードを設定するコマンド、またはパスワードのみを設定するコマンドの両方で失敗します。ユーザー名の設定は問題ありません。

ユーザー名とパスワードの両方を設定しようとしています[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. )

ユーザー名のみを設定しようとしています[成功]:

>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"

ユーザー名の設定に成功した後でパスワードを設定しようとしています[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. )

ドメインユーザーをIIS_IUSRSグループに追加し、「サービスとしてログオン」できるようにしました。

私が間違っている可能性のある提案はありますか?

6
Niels R.

ごとに AD =なしでネットワーク共有にアクセスできるように、IIS Webアプリをどのように設定しますか?

私は同じ問題を抱えていましたが、パスワードを平文で入力することができなかったので、もう少し掘り下げてこの記事を見つけました: Custom IIS App Pool Identity:Value does not within期待される範囲

診断の重要なステップは、適切なイベントを調べることです。

これを解決する方法を見つけるために、私はイベントビューアに行きました。アプリケーションログには何もなかったので、アプリケーションとサービスのログ=> Microsoft => Windows => IIS-Configurationに移動しました。ここのログはデフォルトで無効になっているため、有効にする必要があります。 (これを行うには、ログを右クリックし、[ログを有効にする]を選択します。)有効にしたら、IDを設定する試みを再実行し、ビュー([アクション]ウィンドウまたはF5)を更新してください!エラーについて。結果には2つのエラー(イベントID 42および43)がありました。

私は記事と同じイベントエラーがありました:

ID 42: '\?\ C:\ windows\system32\inetsrv\config\applicationHost.config'の 'IISWASOnlyAesProvider'暗号化プロバイダーの初期化に失敗しました。設定を確認してください。

ID 43:属性 'Microsoft.ApplicationHost.AesProtectedConfigurationProvider'の暗号化に失敗しました。

それから私は次のことをしました:

  • 古いバージョンのConfigEncKey.keyファイルを復元します(c:\windows\System32\inetsrv\configに)
  • <configProtectedData><providers>セクションを古いセクションに置き換えます(c:\windows\System32\inetsrv\config\applicationHost.config内)

次に、カスタムIDをアプリケーションプールに再度設定できます。

2

別のサーバーから秘密キーを取得し、最初に別のサーバーからキーをエクスポートすることで、このサーバーにインポートすることができますIIS機能するサーバー:C:\ Windows\Microsoft.NET\Framework64\v4 .0.30319> aspnet_regiis -px "iisWasKey" "C:\ temp\AESKeys.xml" -pri

次に、壊れたマシンでそのキーを復元できます(他のサーバーにキーをコピーして同じ場所に配置します)。C:\ Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis -pi "iisWasKey" "C :\ temp\AESKeys.xml "

3番目に、c:\ windows\system32\inetsrv\applicationhost.configを編集し、既知の作業サーバーのconfigprotecteddataセクションを使用して、このファイル内の既存のサーバーの代わりに使用します。

このセクションのようになります。

問題がなければ、アプリケーションプールを作成してテストし、詳細設定に移動して、DOMAIN\userまたは必要な他のユーザーとして実行します。

トニー・トラス

1
Tony Trus

/section:applicationPools/section:system.applicationHost/applicationPoolsに変更し、末尾に/commit:apphostを追加してみてください

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

0
Todd Smith

このアプリケーションプールで構成されているアプリケーションのバインディングを確認します。無効な文字、スペースなど。

ソース

0
MichelZ

Windows Server 2012でもこの問題が発生しました。

Appcmdの使用時に最後のパラメーターであるパスワードを削除すると、IDタイプの変更とユーザー名の設定に成功します。

なぜパスワードを設定できなかったのかわからなかったので、applicationHost.configファイルを直接編集するように言いました。残念ながら、パスワードは平文です。

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

特定のアカウントを使用するようにアプリプールを構成することに加えて、次のことも行いました。

1)IIS_IUSRSグループにアカウントを含め、バッチジョブとしてログオンする権限を間接的に付与します。

2)次のコマンドを実行して、ユーザーに権限を付与します

aspnet_regiis -ga <your_app_pool_user>

詳細: 方法:ASP.NET 2.0アプリケーション(MSDN)のサービスアカウントを作成する

3)WASおよびIIS=を再起動して、アカウントグループメンバーシップへの変更が反映されるようにします。

C:> net stop was /y
C:> net start w3svc
0
Fredrik Haglund