Пакетный скрипт для копирования содержимого одной папки в другую в папку C:\Program Files (x86). Не работает - Ошибка отказа в доступе

Я написал простой пакетный скрипт, который копирует содержимое одной папки в другую. Я уже вошел в систему как администратор. Я работаю на машине Windows-7.

Папка 1 и папка 2

Расположение папок:

C:\Program Files (x86)\Folder1  
C:\Program Files (x86)\Folder2

Если я запускаю свой скрипт, дважды щелкнув его, я получаю отказ в доступе. Если я щелкну правой кнопкой мыши файл «Запуск от имени администратора», он правильно скопируется.

Ожидаемое поведение: при прямом двойном щелчке по пакетному скрипту он должен скопировать файл. Поскольку я уже вошел в систему как администратор.

Ждем ценных отзывов от коллег-кодеров


person Gikar    schedule 12.05.2014    source источник


Ответы (2)


Следующий сценарий помогает запустить пакетный файл как «Запуск от имени администратора».

@echo off
if _%1_==_payload_  goto :payload

:getadmin
    echo %~nx0: elevating self
    set vbs=%temp%\getadmin.vbs
    echo Set UAC = CreateObject^("Shell.Application"^)                >> "%vbs%"
    echo UAC.ShellExecute "%~s0", "payload %~sdp0 %*", "", "runas", 1 >> "%vbs%"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
goto :eof

:payload
    echo %~nx0: running payload with parameters:
    echo %*
    echo ---------------------------------------------------
    echo ADM is launching. DO NOT CLOSE THIS WINDOW.
    cd /d %2
    shift
    shift
    echo Name of the batch file which you want to run as admin
    CopyFiles.bat 
goto :eof

exit
person Gikar    schedule 20.05.2014

Возможно, у вашей группы пользователей нет разрешений на чтение и выполнение для командного процессора,

пожалуйста, взгляните на решение, описанное здесь

http://support.microsoft.com/kb/867466

person SAIndia    schedule 12.05.2014
comment
Спасибо .. Но я уже вхожу в систему как администратор. Почему я должен работать от имени администратора - person Gikar; 12.05.2014
comment
Пока вы входите в систему как администратор, программы, которые вы запускаете, не выполняются с полными разрешениями. Это мера безопасности, позволяющая избежать рисков, поскольку большинство людей по умолчанию используют учетную запись Administartor. - person SAIndia; 12.05.2014
comment
Итак, каково решение для этого. Потому что я вижу, что уже читаю и выполняю разрешение на пакетный скрипт - person Gikar; 12.05.2014
comment
UAC не позволяет вашему скрипту получить доступ к каталогу Program Files, для этого вам нужно запустить пакетный файл от имени администратора: technet.microsoft.com/en-us/library/cc709691(v=ws.10).aspx вы можете отключить UAC, если это постоянное бремя, но я бы не советовал: windows.microsoft.com/en-us/windows/ - person Alex; 12.05.2014
comment
Спасибо Алекс и SAIndia. - person Gikar; 20.05.2014