Скопируйте файл из каталога скриптов на рабочий стол All Users

Я написал сценарий ниже, но когда я запускаю его (используя PrimalScript для устранения неполадок), я получаю сообщение об ошибке "Отказано в доступе". Я являюсь администратором на этом устройстве и получаю ту же ошибку при запуске сценария с повышенными правами.

Вот сценарий:

Dim WshShell, strCurDir, File, strDesktop

Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("AllUsersDesktop")
Set ofso = CreateObject("Scripting.FileSystemObject")
strPath = ofso.GetParentFolderName(WScript.ScriptFullName)
File = "pwsafe.psafe3"
strCurDir = ofso.BuildPath(strPath, File)

ofso.CopyFile strCurDir , strDesktop , OverwriteExisting

Что я делаю неправильно?

2 ответа

Решение

Хотя в моем последнем комментарии был показан сценарий, который не работает, приведенный ниже сценарий представляет собой сочетание работы Серхио и Лэнкимарт. Хотел упомянуть их обоих, так как они заслуживают похвалы. Вот рабочий сценарий, и я надеюсь, что кто-то еще использует его.

Dim ofso, oshell, oproc, strDesktop, overwrite
Set ofso = CreateObject("Scripting.FileSystemObject")
Set oshell = CreateObject("WScript.Shell")
Set oproc  = oshell.Environment("Process")
strDesktop = oproc.Item("ALLUSERSPROFILE") & "\Desktop\"
overwrite = True
ofso.CopyFile "pwsafe.psafe3" , strDesktop , overwrite

Спасибо вам обоим.

Вы должны установить процесс:

Dim ofso, oshell, oproc, strDesktop, overwrite
Set ofso = CreateObject("Scripting.FileSystemObject")
Set oshell = CreateObject("WScript.Shell")
Set oproc  = oshell.Environment("Process")
strDesktop = oproc.Item("UserProfile") & "\Desktop\"
overwrite = True
ofso.CopyFile "pwsafe.psafe3" , strDesktop , overwrite
Другие вопросы по тегам