Скопируйте файл из каталога скриптов на рабочий стол 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