Я запускаю пакет xcopy для копирования чего-либо с сервера в C: \ Program Files. Это требует прав администратора. Затем я хочу запустить команду или вызвать командный файл, но запуск с правами администратора не работает. Если я запускаю команду как обычный пользователь, она работает.
Я попытался написать для партии временную партию, а затем либо start
, либо call
эту партию. Но ни одна из них не работает. Между прочим, если пакет запускается от имени администратора для копирования файла и повторного запуска его как обычного пользователя, копирование завершается неудачно (но оно уже скопировано из первого экземпляра), и файл temp.bat успешно записывается, запускается и удаляется.
Я пытался runas
, но это поднимает другие проблемы. Попытка запустить программу runas /noprofile /user:user1@server C:\Program Files\prog\prog.exe
будет работать, но это не то, что я хочу сделать, так как это включает в себя больше кликов, следовательно пакет с параметрами.
Попытка запустить пакет из Program Files возвращает Attempting to start C:\Program Files\prog\prog.bat as user "user1@server" ...
, но это никуда не идет. Или попытка запустить код из этого пакета напрямую с помощью start "" C:\Program Files\prog\prog.exe /param1 /param2
имеет синтаксическую ошибку.
runas
может не быть ответом вообще.
Редактировать: Вот два примера
xcopy /y /f "\\server\BG\settings.bgi" "C:\Program Files\BG"
runas /noprofile /user:"standard user"@domain "C:\Program Files\BG\BGStart.bat"
pause
Это говорит Attempting to start C:\Program Files\BG\BGStart.bat as user...
и продолжается до паузы без успешного запуска летучей мыши
xcopy /y /f "\\server\BG\settings.bgi" "C:\Program Files\BG"
(
echo start "" /wait "C:\Program Files\BG\bginfo.exe" "C:\Program Files\BG\settings.bgi" /silent /NOLICPROMPT /timer:00
echo exit
)>temp.bat
start temp.bat
@timeout /t 3
del temp.bat
pause
Когда запускается какАдминистратор копирует файл, но не запускает temp.bat правильно. При запуске от имени обычного пользователя он не копирует файл, а правильно запускает .bat.