Ниже код возвращает локальный путь из 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 работает на компьютере Так почему это дает ошибку . Как я могу исправить его. У меня есть полное разрешение на эту сетевую папку.
ok.but это может быть сделано, позволяя что-то или изменения настроек? –
Если вы используете AD, то ваша учетная запись должна быть членом группы, входящей в группу администраторов PC100 (или Power Users). Если вы используете Workgroups, то я думаю, вам просто нужно создать учетную запись, созданную на PC100 с тем же именем, что и ваша, и добавить ее в группу Admin/PU на этом компьютере. – Adrian
Я использую рабочую группу. Но у меня есть та же учетная запись, созданная в обоих PC.but все равно получить ту же ошибку –