检查VBScript中是否存在文件时,“权限被拒绝”

时间:2012-06-13 13:51:53

标签: vbscript filesystems

我有一个VBS脚本,用于将文件从旧用户配置文件复制到新用户配置文件(如果存在),但在使用objFSO.FileExists()方法时,我会看到“权限被拒绝”错误。

要检查文件,我映射一个驱动器(工作正常,并且objFSO.FolderExists()检查工作正常)并传递我的用户名/密码(我是管理员,因此可以访问所有配置文件,但这甚至是失败了我自己的个人资料)。

完整的脚本位于this pastebin(相关代码的第106行),我会很满意一些提示。感谢。

1 个答案:

答案 0 :(得分:1)

使用用户/密码的映射方法经常会出错,因为脚本在另一个安全上下文中运行,而不是用于执行映射的用户。您确实需要映射以获取读取文件的权限,因此最安全的方法是使用映射,但之后使用UNC访问文件,而不是使用driveletter的路径。

所以而不是

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"