本文提供在 Microsoft 以 Windows Server 2003 為基礎之電腦上執行批次作業時所發生之錯誤 (Access 遭到拒絕) 的解決方案。
適用於: Windows Server 2003
原始 KB 編號: 867466
徵兆
當您執行在一般使用者帳戶內容下執行的批次作業時,腳本可能不會執行。 如果您使用 [排程的工作] 功能執行批次作業,下列錯誤訊息可能會記錄在 [排程工作] 記錄檔中(Schedlgu.txt):
0x80070005:拒絕存取。
如果您使用除錯程式來嘗試判斷批次作業無法運作的原因,下列錯誤訊息可能會出現在偵錯輸出中:
拒絕存取 (錯誤 5)
原因
如果下列所有條件都成立,就會發生此問題:
- 您可以在以 Windows Server 2003 為基礎的成員伺服器上執行批次作業。
- 批次作業會以非互動式進程的形式執行。
- 批次作業被設定為執行於非 Administrators 群組成員的帳戶環境中。
在 Windows Server 2003 中,使用者群組沒有命令處理器的讀取和執行許可權(Cmd.exe)。 根據預設,Cmd.exe程式具有下列許可權設定:
Interactive 隱含群組和服務隱含群組具有讀取和執行許可權。
註記
在成員伺服器上,TelnetClients 群組也有讀取和執行許可權。 在域控制器上,Batch 隱含群組也有讀取和執行許可權。
系統管理員群組和系統隱含群組具有完全控制許可權。
若要解決此問題,請使用下列其中一種方法。
解決方案 1:授與Cmd.exe讀取和執行許可權
為執行批次作業的使用者帳戶授予 Cmd.exe 程式的讀取和執行權限。 若要這樣做,請遵循下列步驟:
按兩下 [ 開始],然後按兩下 [ Windows 檔案總管]。
找出 ,然後在Cmd.exe檔案上按下滑鼠右鍵。 Cmd.exe檔案位於 %windir%\System32 資料夾中。
按一下 屬性。
按一下 [安全性] 索引標籤。
按一下新增。
在 [ 輸入要選取 的物件名稱] 方塊中,輸入批次作業執行的使用者名稱,然後按兩次 [ 確定 ] 兩次。
註記
當您新增使用者時,系統會自動將使用者授與 [讀取] 和 [執行] 許可權。
當系統提示您繼續時,請按兩下 [是 ]。
解決方式 2:將Cmd.exe檔案的讀取和執行許可權授與 Batch 群組
將Cmd.exe檔案的讀取和執行許可權授與 Batch 群組。 這可讓所有批處理程式執行命令處理器。 若要這樣做,請遵循下列步驟:
- 按兩下 [ 開始],然後按兩下 [ Windows 檔案總管]。
- 找出 ,然後在Cmd.exe檔案上按下滑鼠右鍵。 Cmd.exe檔案位於 %windir%\System32 資料夾中。
- 按一下 屬性。
- 按一下 [安全性] 索引標籤。
- 按一下新增。
- 在「輸入要選取的物件名稱」方塊中,輸入 Batch,然後兩次點擊 OK。
- 當系統提示您繼續時,請按兩下 [是 ]。
其他相關資訊
本文中所述的行為與 Microsoft windows 2000 Server 的預設行為不同。 根據預設,Windows 2000 Server 會授與 [使用者] 群組的 [讀取] 許可權和 [執行] 許可權。
如需隱含群組的詳細資訊,請流覽下列Microsoft網站: