為什麼作為本地系統執行的程序訪問 UNC 共享被視為 NT AUTHORITYANONYMOUS LOGON?
我有一個 Windows 服務在 SERVER_X 上作為本地系統執行,它試圖訪問 SERVER_Y 上託管的 UNC 共享上的腳本。
根據下面的連結,我已授予 SERVER_X 的電腦帳戶訪問 SERVER_Y 上的 UNC 的權限。
如何授予對域網路中本地 SYSTEM 帳戶的共享文件夾的訪問權限
但是,Windows 服務無法訪問該文件(拒絕訪問錯誤)。
dir \\SERVER_X\share Access is denied.
在安全事件日誌(在 SERVER_Y 上)中,我看到 SERVER_X 正在嘗試以 NT AUTHORITY\ANONYMOUS LOGON 身份訪問 UNC 共享。我認為我應該在安全事件日誌中看到電腦帳戶(即 DOMAIN\SERVER_X)。
兩台伺服器都是 Windows Server 2003 SE SP2。
任何幫助將不勝感激!
我發現了這個Microsoft 部落格,它讓我看到了使用伺服器的主機名與 CNAME 的對比。
具體來說,以下片段:
如果您回答了 DNS 名稱解析,那麼您將是正確的。如果名稱解析在環境中不能正常工作,它將導致請求 Kerberos 票證的應用程序實際上為錯誤的服務主體名稱請求服務票證。因此,如果您還記得我嘗試連接到“ltwre-chd-mem1.chd.litwareinc.com”的遠端文件伺服器,但是 DNS 伺服器找到了“ltwre-chd-mem1.litware.com”的記錄。由於我們在“litwareinc.com”域中找到遠端文件伺服器,Kerberos 客戶端請求“cifs/ltwre-chd-mem1.litwareinc.com”的服務票證,如 Kerberos 票證請求中所述,KDC 以 KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN 響應.
和…
實際上,有幾種不同的方法可以“解決”這個問題:
一種。找出 DNS 解析機器名稱不正確的原因。
一世。此名稱是否有 HOST 或 CNAME 記錄?
ii. 您是否為 WINS 查找配置了 DNS 區域?
和…
**如果您發現無法修復 DNS 問題,那麼下一個最佳解決方案是讓應用程序使用伺服器的 FQDN。**請記住,應用程序供應商需要參與才能使用此修復程序。
**注意:**在 Windows Server 2008 主機上,我可以使用 CNAME 成功執行 dir 命令。
解決方案 1:
使用主機名而不是 CNAME。
我驗證了,如果我從 Windows Server 2003 主機使用主機名 (ie
\\HOSTNAME\share
) 而不是 CNAME (ie\\CNAME\share
) 訪問 UNC 共享,則訪問將正常工作。範例 - 工作:
dir \\HOSTNAME\share
範例 - 不起作用:
dir \\CNAME\share Access is denied.
解決方案 2:
為 CNAME 設置 SPN(服務主體名稱)。
setspn -a HOST/CNAME SERVER
這樣做後,
dir \\CNAME\share
工作。另請參閱如何配置 Windows 機器以允許與 DNS 別名共享文件以獲取更多資訊。