2011-05-18 75 views
1

一個LNK文件這裏是我的代碼複製使用VBS

Const ALL_USERS_DESKTOP = &H19& 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.Namespace(ALL_USERS_DESKTOP) 
Set objFolderItem = objFolder.Self 
Wscript.Echo objFolderItem.Path 
objFSO.CopyFile "\\server\folder\folder\Name of File 8.5.lnk" , objFolderItem.Path , OverwriteExisting 

使我對最後一行的錯誤。我不知道問題是什麼,但我認爲它與lnk文件有關。如果我放入一個bat文件或一個txt文件,該文件將被複制。 lnk給出錯誤。

使用Vbsedit將爲我的編輯和在CScript(不WScript的)

錯誤消息 C:\用戶\公用\桌面 Microsoft VBScript運行時錯誤(18,1):權限被拒絕

我知道我有權訪問服務器和文件夾。我也可以複製所有的非LNK文件

------------- UPDATE -----

我修改與以下

Const DESKTOP = &H10& 
Set objShell = CreateObject("Shell.Application") 
    Set objFolder = objShell.Namespace(DESKTOP) 
    Set objFolderItem = objFolder.Self 
    Wscript.Echo objFolderItem.Path 
    objFSO.CopyFile "\\server\folder\folder\Name of File 8.5.lnk" , objFolderItem.Path , OverwriteExisting 
代碼

同樣的事情。它說權限被拒絕(甚至對我自己的桌面)。使用鼠標,我可以在沒有密碼或特殊權限的情況下在桌面上創建任何我想要的東西。

+0

你什麼錯誤? – SLaks 2011-05-18 17:41:36

+0

我用Vbsedit將爲它說,[C:\用戶\公用\桌面 Microsoft VBScript運行時錯誤(18,1):拒絕權限] – 2011-05-18 17:46:01

+0

但爲什麼這只是發生在.LNK文件?你有沒有試過複製lnk文件。我想複製快捷方式(不是原始項目)。 – 2011-05-18 17:59:59

回答

1

我不得不重新創建快捷方式,因爲VBS不會複製它。

Set Shell = CreateObject("WScript.Shell") 
DesktopPath = Shell.SpecialFolders("Desktop") 
Set link = Shell.CreateShortcut(DesktopPath & "\shortcut.lnk") 
link.TargetPath = "C:\dir\filename.vbs" ' the location where you store the file on the server 
link.Arguments = "" 
link.Description = "Shortcut" 
link.HotKey = "CTRL+L" 
link.IconLocation = "C:\dir\filename.ico" 
link.WindowStyle = 1 
link.WorkingDirectory = "C:\dir" 
link.Save 
1

我覺得,因爲它指的是文件夾,您可能需要您的detination路徑上的斜線:

objFSO.CopyFile "\\server\folder\folder\Name of File 8.5.lnk" , objFolderItem.Path & "\" , True 

沒有斜線,您要覆蓋該文件夾,因此權限被拒絕。

+0

這是一個有趣的想法。我會嘗試一下,但如果我沒有添加任何斜槓並希望複製另一個文件,如「文件名8.5.doc」,那麼它複製文件沒有問題。所以這很奇怪。你試過這個嗎? – 2011-05-19 13:18:26

+1

也許你的環境是不同的。我試過了一個簡化版本。使用斜槓即可,沒有,它會因拒絕許可而失敗。設置objFSO = CreateObject(「Scripting.FileSystemObject」)objFSO.CopyFile「c:\ temp \ test.lnk」,「c:\ test \」,True – rd1966 2011-05-20 14:45:01