0

下面的代码从 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 上运行 那么为什么会出现错误。我该如何纠正它。我做拥有该网络文件夹的完全权限。

4

2 回答 2

1

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

于 2013-07-30T09:18:08.423 回答
1

您是否必须像这样获取 WMI 对象?:

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

资料来源:MSDN

于 2013-10-16T13:54:45.077 回答