2012-10-16 244 views
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\\" 

任何线索,为什么这是行不通的?

+0

使用双反斜线一样,是不是在恰当的VBScript。 –

+0

好的,但程序运行良好的本地文件。这使用双反斜杠。所以我不认为这是反斜杠。 –

+0

避免考虑它。实际上删除反斜杠并再试一次。怎么了? –

回答

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。

2

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

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

相关问题