
問題在於具有最新更新的 Windows 7 系統,位於非 AD 無網域環境中包含 Windows 2008r2 伺服器的網路上。
從檔案總管或應用程式中,我可以使用已儲存的憑證存取 \\server\share。我根據伺服器上使用者的帳戶權限擁有讀取/寫入存取權限。在命令視窗中,我可以輸入“net use \\server\share”並獲得一些詳細信息,然後是“命令成功完成”。
從排程任務啟動的 CMD 批次檔中,net use \\server\share 有時會掛起腳本,因為它提示輸入使用者名稱和密碼。
我可以看到失敗的計劃任務視窗隨著提示被凍結。我可以啟動另一個命令視窗並輸入“net use \\server\share”並且它可以工作。
如果我從任務規劃程式重新執行排程任務,它將成功運行並且不會掛在 Net Use 上。只有當任務被系統啟動的時候才顯得登入有問題。
為什麼網路使用有時會要求提供憑證(保存在本機電腦上)?如何才能讓這個調度任務可靠地運作呢?
答案1
問題似乎是,在最近的一些 Windows 更新之後,提升的計劃任務不再能夠可靠地使用存儲的憑證進行網絡訪問,即使它們作為主用戶而不是系統運行。
我不想為此問題在計算機上全域禁用 UAC。我不想將使用者名稱和密碼放在任務的 CMD 檔案中。
我的折衷解決方案是在伺服器上建立一個具有特定、有限權限的新帳戶來完成此任務。我在伺服器上為該任務所需的特定資源建立了一個新共用。 (specialshare)在排程任務中,我刪除任何現有的登入名稱(因為它們有時似乎存在),然後使用有限的帳戶憑證(在 CMD 檔案中)連接到伺服器。
NET USE \\server /D
NET USE \\server /U:limiteduser junkpassword
... run the rest of the scheduled task, perform network access to \\server\specialshare...
NET USE \\server /D
不理想,但似乎有效。如果您有更好的方法,歡迎評論。