2011-05-18 28 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