Vbscript VBS脚本';未找到路径';设置文件系统文件夹对象引用时出错

Vbscript VBS脚本';未找到路径';设置文件系统文件夹对象引用时出错,vbscript,path,Vbscript,Path,我正在编写一个脚本,以确定登录Windows 2003服务器的每个用户的配置文件文件夹中特定子文件夹的所有实例的合并大小,例如所有用户的桌面文件夹或所有用户的本地设置文件夹 选项显式 Dim colSubfolders、intCount、intCombinedSize、objFolder2、objFSO1、objFSO2、objUserFolder、strOutput、objSearchFolder、objSubfolder、strSearchFolder、strSubfolderPath 整数

我正在编写一个脚本,以确定登录Windows 2003服务器的每个用户的配置文件文件夹中特定子文件夹的所有实例的合并大小,例如所有用户的桌面文件夹或所有用户的本地设置文件夹

选项显式
Dim colSubfolders、intCount、intCombinedSize、objFolder2、objFSO1、objFSO2、objUserFolder、strOutput、objSearchFolder、objSubfolder、strSearchFolder、strSubfolderPath
整数=0
intCombinedSize=0
strSearchFolder=“C:\Documents and Settings\”
设置objFSO1=CreateObject(“Scripting.FileSystemObject”)
设置objsearcholder=objFSO1.GetFolder(strearchfolder)
设置colSubfolders=objsearcholder.SubFolders
对于colSubfolders中的每个objUserFolder
strSubfolderPath=objUserFolder.Path&“\Desktop\”
设置objFSO2=CreateObject(“Scripting.FileSystemObject”)
设置objSubfolder=objFSO2.GetFolder(strSubfolderPath)
intCount=intCount+1
intCombinedSize=intCombinedSize+objSubfolder.Size
下一个
MsgBox“组合大小”和CStr(intCount)和文件夹:&CStr(intCombinedSize/1048576)和“MB”
此代码在第15行抛出“未找到路径”错误(代码800A004C):

Set objSubfolder = objFSO2.GetFolder(strSubfolderPath)
但是,如果我打印出strSubfolderPath,我会发现返回的所有字符串都是有效的目录路径,所以我不明白为什么会出现这个错误


我尝试过在路径末尾使用和不使用尾随反斜杠,我尝试过使用8.3样式的路径来删除空格,但没有效果。

当我运行您的代码时,我得到了相同的错误

进一步检查后,在我的计算机上有一个名为
C:\Documents and Settings\machinename
的文件夹,其中machinename是我计算机的名称。此文件夹仅包含一个子文件夹,名为
ASPNet


我猜您也有类似的情况。

为了尽量减少多个反斜杠的混淆,请一致地使用
FileSystemObject
方法,而不是依赖字符串连接:

strSubfolderPath = objFSO1.BuildPath(objUserFolder.Path,"Desktop")

运行脚本的帐户是否具有访问这些文件夹并在Windows资源管理器中查看其大小的权限?好奇:为什么要创建多个
FileSystemObject
,而不是重复使用同一个?没有意识到我不需要创建另一个
FileSystemObject
,因为我对VBS还是新手。谢谢@Jean-François Corbett指出这一点。@Helen我忘了在原始问题中包括脚本是以管理员帐户运行的,可以访问所有目录,但谢谢检查。问题现在解决了。非常感谢。我没有发现隐藏的文件夹LocalService和NetworkService,它们是无桌面的。我添加了
如果objFSO.FolderExists(strSubfolderPath)那么它工作得很好。