2012-06-13 154 views
0

我有一個VBS腳本,用於將文件從舊用戶配置文件複製到新文件(如果存在),但我顯示'Permission denied '使用objFSO.FileExists()方法時出錯。檢查VBScript中是否存在文件時'權限被拒絕'

要檢查文件,我映射一個驅動器(工作正常,並且objFSO.FolderExists()檢查工作正常),並傳遞我的用戶名/密碼(我是管理員,因此可以訪問所有配置文件,但這甚至在我的失敗自己的檔案)。

完整的代碼在this pastebin(代碼行106),我會非常樂意提供一些提示。謝謝。

回答

1

帶有用戶/密碼的映射方法通常會帶來麻煩,因爲腳本在另一個安全上下文中運行,而不是您用來執行映射的用戶。您確實需要映射才能獲取讀取文件的權限,因此最安全的方法是使用映射,但之後使用UNC訪問文件,而不是使用驅動器號的路徑。

所以不是

old_nicknames_file_path = "J:\" & user_name & "\Application Data\Microsoft\Outlook" 

使用

old_nicknames_file_path = "\\server\d$\__OLD-PROFILES\" & user_name & "\Application Data\Microsoft\Outlook" 
+0

感謝彼得,會試試看。我還注意到我錯過了第116行的尾部斜線,這似乎已經對腳本進行了排序(儘管它報告了106錯誤)。 –