1

此查询在我的本地机器上运行良好:

strComputer = "."
drive = "C:"
path = "\\path\\to\\local\\folder\\"

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery("Select * From CIM_DataFile Where Path = '"&path&"' and drive='"&drive&"'")

If colFiles.Count < 1 Then
    Wscript.Echo "Folder does not exist"
Else
    Wscript.Echo "Folder does exist"
End If

但是当我尝试查询映射的网络驱动器时,程序失败并显示“文件夹不存在”。但我确信这是文件的正确路径。

唯一改变的部分是:

drive = "Z:"
path = "\\path\\to\\mapped\\drive\\folder\\"

关于为什么这不起作用的任何线索?

4

2 回答 2

2

尝试通过 WMI 映射远程计算机上的驱动器将失败,但有一种解决方法。感谢 Frank White 鼓舞人心的代码,现在存在一个完整的过程,可以通过 WMI 使用命令提示符并传递显式凭据来映射远程计算机上的驱动器。

https://stackoverflow.com/a/11948096/1569434

于 2012-11-04T03:32:24.930 回答
0

因此,为了调试它,我运行了以下命令:

strComputer = "."
 Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 Set colFiles = objWMIService.ExecQuery("Select * from CIM_Datafile Where Drive = 'Z:'")
 For Each objFile in colFiles
    Wscript.Echo objFile.Name
 Next

这导致错误“远程过程调用失败”,我理解这意味着映射驱动器不支持 WMI。

于 2012-10-22T11:23:12.137 回答