从UNC路径获取本地路径

时间:2013-07-30 07:45:16

标签: windows vbscript wmi rpc unc

下面的代码返回UNC路径的本地路径。

strPath = "\\pc100\d"

strPath = Replace(strPath, "\\", "")

arrPath = Split(strPath, "\")

strComputer = arrPath(0)
strShare = arrPath(1)
Wscript.Echo strComputer 
Wscript.Echo strShare 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_Share Where Name = '" & strShare & "'")

For Each objItem in colItems
    Wscript.Echo objItem.Path
Next

但它只适用于我的电脑的路径。那就是如果我的电脑名称是pc1然后如果我通过\\ pc1 \ D \然后它返回D:\

但是如果我给网络pc路径如\\ pc100 \ d \那么它会出现错误,如下所示

---------------------------
Windows Script Host
---------------------------
Script: D:\Desktop\New Text Document.vbs
Line:   12
Char:   1
Error:  Permission denied: 'GetObject'
Code:   800A0046
Source:     Microsoft VBScript runtime error

---------------------------
OK   
---------------------------

但\\ pc100 \ d \是一个共享的驱动器.Firewall在PC上都关闭。远程程序调用(RPC)服务和WMI正在PC上运行那么为什么这会给出错误。我怎么能纠正它。我拥有该网络文件夹的完全权限。

2 个答案:

答案 0 :(得分:1)

您无法访问PC100上的WMI / ManagementScope。

答案 1 :(得分:1)

你是否必须得到这样的WMI对象?:

Set objWMIService = GetObject("winmgmts:" & _
    "{impersonationLevel=Impersonate}!\\" & _
    strComputer & "\root\cimv2")

来源:MSDN