下面的代码返回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上运行那么为什么这会给出错误。我怎么能纠正它。我拥有该网络文件夹的完全权限。
答案 0 :(得分:1)
您无法访问PC100上的WMI / ManagementScope。
答案 1 :(得分:1)
你是否必须得到这样的WMI对象?:
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2")
来源:MSDN