IISManagerAuthユーザーを使用してIIS 8.5(Windows Server 2012 R2))のサイトにFTP Publishingを設定しようとしています。残念ながら、恐ろしいエラー530が表示され、ユーザーはログインできません。 Windowsユーザーでも問題なく動作しますが、さらに詳しく調べたところ、次のメッセージが表示されました。
530-User cannot log in.
Win32 error: Access is denied.
Error details: Filename: \\?\C:\Windows\system32\inetsrv\config\redirection.config
Error: Cannot read configuration file due to insufficient permissions
これは、ここに詳述されている同じ問題のようです: IIS 7.5、Windows 7の場合IISユーザーがログインできない、「権限が不十分なため、構成ファイルを読み取れません」 =
そこでの解決策は、configフォルダーと2つのファイルの読み取りアクセス許可をNetwork Serviceに付与することです。
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant "Network Service":R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant "Network Service":R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant "Network Service":R
ただし、私の知る限りでは、このユーザーは死んでいてIIS 8以上)になり、ApplicationPoolIdentityに置き換えられています。これは、サイトの物理フォルダーのアクセス許可を設定するときに非常に簡単です:= IIS APPPOOL\Poolname
実験として、上記のフォルダーとファイルへの読み取りアクセスをこのユーザーに許可しようとしましたが、それはうまくいきませんでした。
だから私はかなり困惑しています、IISManagerAuthのこれらの構成ファイルを読み取るためにどのユーザーが使用されているか誰かが知っていますか?ここでどのユーザーに権限が必要ですか?それとも私はそれを完全に間違っていて、問題は完全に異なりますか?
ご協力いただきありがとうございます!
私はそれを考え出した!
%SystemDrive%\ Windows\System32\inetsrv\configにアクセス許可を追加する必要があります
「ネットワークサービス」を追加し、フォルダーの読み取りアクセス許可を付与します。これを行ったときにサブフォルダーに関するエラーが発生しました...とにかくそれはうまくいきました。
最初はうまくいきませんでしたが、あなたは正しいです。
Windows Serverの英語以外のバージョンでは、「ネットワークサービス」が実際には「ネットワークサービス」と呼ばれていないという追加の問題がありました。システムユーザーの名前をローカライズすることは、私には信じられないほど愚かに思えます。でも、その時はいい考えだったと思います。だから私は最初は正しい考えを持っていました、私はこの専門性にただ投げられました。
だれかが同じ問題を抱えている場合は、ローカライズされたユーザー名を探すか、セキュリティ識別子「* S-1-5-20」を使用してください。
上記のコマンドは、どの言語バージョンのWindows Serverでも機能するように、次のように読み取る必要があります。
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant *S-1-5-20:R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant *S-1-5-20:R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant *S-1-5-20:R
詳細については、「 既知のSID構造 」を参照してください。