IIS 8 でドメイン ユーザーのパスワードをアプリケーション プール ID として設定できない

IIS 8 でドメイン ユーザーのパスワードをアプリケーション プール ID として設定できない

IIS 8 (Windows 2012) でドメイン ユーザー アカウントをアプリケーション プール ID として設定しようとしています。IIS 管理コンソールを使用してこれを実行しようとすると、常にエラーが発生します。

値が予想範囲内にありません。

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

ユーザー名とパスワードの両方を設定しようとしています [失敗]:

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

ユーザー名の設定に成功した後、パスワードの設定を試行しています [失敗]:

>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 グループに追加し、「サービスとしてログオン」できるようにしました。

私が間違っている点について何かアドバイスはありますか?

答え1

に従ってAD なしでネットワーク共有にアクセスできるように IIS Web アプリを設定するにはどうすればよいですか?

私も同じ問題を抱えていましたが、パスワードをクリアテキストで入力することができなかったので、もう少し調べてみたところ、次の記事を見つけました。 カスタム IIS アプリケーション プール ID: 値が想定範囲内にありません

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

これを解決する方法を見つけるために、イベント ビューアーにアクセスしました。アプリケーション ログには何もなかったので、アプリケーションとサービス ログ => Microsoft => Windows => IIS 構成に移動しました。ここのログは既定で無効になっているため、有効にする必要があります。(これを行うには、ログを右クリックし、[ログの有効化] を選択します。) 有効にしたら、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>セクションを古いものに置き換える(in 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 または必要な他のユーザーとして実行できます。

トニー・トラス

答え3

このアプリケーション プールで構成されているアプリケーションのバインディングをチェックして、無効な文字やスペースなどの誤ったバインディングがないかどうかを確認します。

ソース

答え4

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

appcmd は設定を設定します /section:system.applicationHost/applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd /commit:apphost

関連情報