2013-07-30 3 views
0

Ниже код возвращает локальный путь из 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 

Но это работает только для моего компьютера. То есть, если мое имя pc равно 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 \ является диском, который shared.Firewall выключено как на PC.Remote вызов процедур (RPC) службы и WMI работает на компьютере Так почему это дает ошибку . Как я могу исправить его. У меня есть полное разрешение на эту сетевую папку.

ответ

1

У вас нет доступа к WMI/ManagementScope на ПК100.

+0

ok.but это может быть сделано, позволяя что-то или изменения настроек? –

+0

Если вы используете AD, то ваша учетная запись должна быть членом группы, входящей в группу администраторов PC100 (или Power Users). Если вы используете Workgroups, то я думаю, вам просто нужно создать учетную запись, созданную на PC100 с тем же именем, что и ваша, и добавить ее в группу Admin/PU на этом компьютере. – Adrian

+0

Я использую рабочую группу. Но у меня есть та же учетная запись, созданная в обоих PC.but все равно получить ту же ошибку –

1

Вы должны получить объект WMI, как это вместо ?:

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

Источник: MSDN