2013-07-30 346 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 

但它只適用於我的電腦的路徑。這是如果我的電腦名稱是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都在PC上運行那麼,爲什麼這給錯誤。我該如何糾正它。我對該網絡文件夾有完全的權限。

回答

1

您無權訪問PC100上的WMI/ManagementScope。

+0

ok.But可以將它通過使一些或更改設置來實現? –

+0

如果您使用的是AD,那麼您的帳戶需要是屬於PC100管理員(或超級用戶)組的成員。如果您使用Workgroups,那麼我認爲您只需要在PC100上創建一個與您的名稱相同的帳戶並將其添加到該機器上的Admin/PU組中 – Adrian

+0

我正在使用workgroup.But但是我在兩個帳戶中都創建了相同的帳戶PC.but仍然得到相同的錯誤 –

1

你必須讓你的WMI對象是這樣,而不是?:

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

來源:MSDN