1

これが私のコードです

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:\ Users \ Public \ Desktop Microsoft VBScriptランタイムエラー(18、1):アクセスが拒否されました

サーバーとフォルダーにアクセスできることを知っています。他のすべての非lnkファイルもコピーできます

- - - - - - - アップデート - - -

次のようにコードを変更しました

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

同じこと。許可が拒否されたと表示されます(自分のデスクトップに対しても)。マウスを使用すると、パスワードや特別な権限がなくても、デスクトップ上に必要なものを作成できます。

4

2 に答える 2

1

フォルダを参照しているため、宛先パスの末尾にスラッシュが必要な場合があると思います。

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

スラッシュがないと、フォルダを上書きしようとしているため、アクセスが拒否されます。

于 2011-05-19T10:30:51.310 に答える
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 
于 2011-05-19T14:23:47.990 に答える