下面的代码从 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\ 是共享的驱动器。PC 上的防火墙均已关闭。远程过程调用 (RPC) 服务和 WMI 正在 PC 上运行 那么为什么会出现错误。我该如何纠正它。我做拥有该网络文件夹的完全权限。