IIS 8.5 IISManagerAuth Provider 530 - 使用者無法登錄
我正在嘗試使用 IISManagerAuth 使用者為 IIS 8.5(Windows Server 2012 R2)中的站點設置 FTP 發布。不幸的是,我遇到了可怕的錯誤 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 使用者無法登錄,“由於權限不足,無法讀取配置文件”
解決方案是將配置文件夾和兩個文件的讀取權限授予網路服務:
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 結構