|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
|
Запуск таски из виндового с шедулера с максимальными правами30.10.2017, 19:55. Показов 5093. Ответов 24
Метки нет (Все метки)
Всем доброго времени суток.
Возникла следующая проблема. Есть cmd-файл на виндовом сервере, который запускает процесс загрузки данных в некоторую систему. В конце процесса необходимо пересохранить и переименовать некоторый эксель-файл (лог процесса загрузки данных). Если запускать батник с галкой "Run as administrator" все замечательно отрабатывает. Однако предполагается, что процесс будет работать в автоматическом режиме по ночам, поэтому запускаю его из под виндового шедулера. В этом случае лог не переименовывается и не пересохраняется (видимо, не хватает прав). Пробовал добавлять учетку, из под которой дергается cmd-шник, в группу админов - никакого эффекта. В свойствах таски поставил галку "Run with the highest privileges" - также никакого эффекта. Подскажите, можно ли как-то решить данную проблему? Очень хотелось бы, чтобы при запуске процесса он еще и не требовал ввода админского пароля. Заранее благодарен за помощь.
0
|
|
| 30.10.2017, 19:55 | |
|
Ответы с готовыми решениями:
24
Запуск батника с правами админа из под учетки с ограниченными правами
|
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
| 30.10.2017, 22:37 | |
|
0
|
|
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
|
| 31.10.2017, 09:44 [ТС] | |
|
alpap,
я уже писал выше, что это по прежнему не дает никакого эффекта. Пересохранение и переименование экселевского лога осуществляется кастомным vbs-скриптом, который запускается из под утилиты cscript.exe. Учетка, которая запускает сам процесс входит в группу админов; у этой группы есть только права на чтение и исполнение файла cscript.exe. Может быть, нужно выдать полные права (full control) на файл?
0
|
|
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||||||||||
| 31.10.2017, 13:28 | ||||||||||||||
|
Вот полные права на файл, если админ
1
|
||||||||||||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
||||||||||||||
| 31.10.2017, 16:30 [ТС] | ||||||||||||||
Для пересохранения эксельника из скрипта sas запускаю команду, которая вызывает cscript.exe и свой кастомный vbs-скрипт. Он (кастомный скрипт) и пересохраняет эксельник. При запуске руками все работает отлично. Добавлено через 12 минут alpap, код запуска кастомного vbs-скрипта вот такой:
x - это команда языка sas base, позволяющая из сессии sas запускать команды командной строки. 20171031-1129-results-CustomObject3.xls - первоначальное имя лога, который нужно пересохранить, передаю параметром в скрипт convertXlsToXlsx.vbs. D:\...\logs\ - директория с логами, где лежит исходный файл лога, тоже параметр. 2017-10-31__10.28.38 AM - датавременная метка, пойдет в новое имя лога, тоже параметр. Подскажите, как мне в эту команду вставить назначение прав, которое вы привели?
0
|
||||||||||||||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|||||||||||||||||
| 31.10.2017, 16:51 | |||||||||||||||||
|
Расшифруйте:
call D:\.....\sas.exe -sysin D:\.....\import_data.sas -nolog почему и зачем call запуск строки в таком коде, что показывает?
Добавлено через 10 минут И вообще, в планировщике лучше запускать так: - в действиях указываете путь к файлу bat (cmd), указываете (Добавить аргументы) путь к папке из которой будете запускать какой-то файл (программу), эта папка соответственно будет первым параметром bat (cmd) - в коде самого bat (cmd) пишите первой строкой:
Не по теме: и сейчас однозначно (и правильно сделают) вам посоветуют использовать только vbs, а не варить кашу из топора.
0
|
|||||||||||||||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
||
| 31.10.2017, 17:28 [ТС] | ||
|
При запуске руками без call все работает отлично даже без галки "Run as administrator". А вот при запуске из под шедулера процесс import_data.sas стартует, но штатный процесс (внутренний процесс системы), который собственно грузит данные и создает лог, даже не запускается. Т.е. лог даже не формируется. В случае, если call стоит, процесс нормально запускается из под шедулера, формируется лог, но вот переименовать и пересохранить его прав уже почему-то не хватает. Правильно я понимаю, что команду назначения прав пользователю к нужной директории можно прописать в самом начале батника, перед запуском процесса? Пользователь должен быть указан с доменом или нет?
0
|
||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||
| 31.10.2017, 18:26 | ||||
|
0
|
||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
||||||||
| 31.10.2017, 21:38 [ТС] | ||||||||
|
И сразу извиняюсь за глупый вопрос - можете прокомментировать ваш код с назначением прав. Просто я с cmd работаю очень редко и мало, а с правами вообще никогда не работал. Буду очень благодарен. Добавлено через 24 минуты Вот текущий код батника, который стоит в шедулере:
Права раздались корректно, именно на файл cscript.exe. Процесс запускается, экселевский лог формируется, падает в мою директорию с логами, но по прежнему отказывается пересохраняться и не переименовывается. Добавлено через 43 минуты То, что я сказал выше относится к запуску батника из под шедулера - права назначились, но ожидаемого результата нет. Странно то, что если запустить этот же батник руками пользователем sasinst, то все замечательно работает. А из под шедулера - не хочет работать... Добавлено через 49 минут Пробовал давать гранты для всех админов на всю директорию SysWOW64 - результат тот же.
0
|
||||||||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|||||||
| 01.11.2017, 02:48 | |||||||
|
Добавлено через 6 минут
путь: Диск:\папка\файл.bat аргумент(параметр): D:\....
0
|
|||||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
||||
| 01.11.2017, 11:01 [ТС] | ||||
|
Добавлено через 1 час 47 минут Добавлено через 1 час 46 минут alpap, т.е. sas.exe и import_data.sas лежат в разных директориях. Положить их в одну директорию невозможно, т.к. sas.exe лежит там, куда был установлена сама система sas, менять расположение экзешника нельзя. Экзешник нужен для запуска сессии sas.
0
|
||||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
| 01.11.2017, 13:54 | ||||||
|
Должно прекрасно отработать это без всяких там ухищрений. Зачем вообще эта вставка на vbs, к чему sas.exe
если надо просто копировать куда-то файл и переименовать его - так? если не совсем - точно растолкуйте что должно с файлом произойти до момента, указанного строкой выше. name.bat
путь: Диск:\папка\name.bat аргумент(параметр): Диск:\папка(в которой файл что надо переименовать)
0
|
||||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
|
| 01.11.2017, 14:29 [ТС] | |
|
alpap,
попытаюсь более подробно описать весь процесс. Есть кастомный скрипт (import_data.sas), предназначенный для загрузки данных из внешней системы в целевую систему (ETL-процесс). Он устроен следующим образом. Вначале запускается кастомная процедура Init для инициализации различных системных переменных, нужных для работы процесса (всякие пути, флаги, доступ к базе данных целевой системы и так далее). Эта процедура а-ля основной конфиг. Далее процесс import_data.sas из директории Дир1 берет эксель-файл, который туда выгружается из внешней системы. Дополняет его определенной информацией и кладет в ту же директорию Дир1. Далее изнутри процесса import_data.sas запускается другой кастомный процесс (Проц1), который в свою очередь дергает штатную процедуру (Проц2; эта процедура синхронизирована с целевой системой, куда грузятся данные). Процедуре Проц2 "скармливается" эксельник, лежащий в директории Дир1. После загрузки данных процедура Проц2 кладет в системную директорию Дир2 лог-файл процесса загрузки (из-за которого весь сыр-бор). Далее внутри процесса Проц1 происходит копирование этого лога в мою директорию с логами. Затем (в силу определенных причин, не буду вдаваться в подробности) мне нужно пересохранить, а потом переименовать этот лог-файл. Пересохранение я делаю с помощью своего кастомного vbs-скрипта, который лежит вместе с батником в директории Дир3. *** Чтобы запустить процесс import_data.sas из батника мне нужно сначала открыть сессию sas (запустив sas.exe), а потом в этой сессии стартануть процесс import_data.sas. Добавлено через 7 минут Важный момент. Пересохранение экселя связано с тем, что мне нужно изменить его расширение с .xls на .xlsx.
0
|
|
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|||
| 01.11.2017, 14:55 | |||
|
0
|
|||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
||||||||
| 01.11.2017, 15:19 [ТС] | ||||||||
|
Извиняюсь за глупый вопрос. Подскажите в чем будет различие этого варианта (ваше сообщение #12) от кода, который я привожу в сообщении #5? В моем варианте путь к файлу указан в виде параметра для скрипта convertXlsToXlsx.vbs. Добавлено через 8 минут Как я понял вы предлагаете следующее. В параметре у таски в шедулере указать путь к файлу (экселевскому логу). А уже в коде саса перед вызовом скрипта convertXlsToXlsx.vbs я пропишу:
Вот только я не знаю сработает ли конструкция %~dp1, если я пропишу команду внутри саса...
0
|
||||||||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||||
| 01.11.2017, 15:35 | ||||||||
|
У вас есть на каком-то этапе в КОНКРЕТНОМ месте КОНКРЕТНЫЙ файл, не важно что происходило с ним до этого, он ЕСТЬ. составляем name.bat с кодом (move - переместить, copy - копировать):
Добавить аргументы (необязательно): Диск:\папка (в которой лежит 20171031-1129-results-CustomObject3.xls) ПОЧЕМУ это должно бы не работать или чем это не устраивает Не по теме: Задачи до..., выполняются как выполнялись в своих vbs, sas, bat и возможно отдельной задачей шедулера
0
|
||||||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
|
| 01.11.2017, 15:38 [ТС] | |
|
alpap,
можно ли как-то получить содержимое %~dp1 внутри батника? Потому что я не могу эту конструкцию напрямую передать в sas перед запуском vbs-скрипта. SAS не распознает ее. Т.е., получить значение %~dp1 в переименную и эту переменную по идее можно передать внутрь скрипта sas. Добавлено через 3 минуты alpap, вопрос по вашему последнему сообщению - командой move можно сделать такую операцию как изменение расширения с xls на xlsx?
0
|
|
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||
| 01.11.2017, 15:48 | ||||
|
Зайдите лучше на vbs со своей задачей, пусть полностью на нем кто-то сделает
придется делать запуск sas.exe "%~dp1" из батника Добавлено через 59 секунд Добавлено через 5 минут
0
|
||||
|
3 / 3 / 0
Регистрация: 08.03.2016
Сообщений: 41
|
||
| 01.11.2017, 15:49 [ТС] | ||
|
0
|
||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||
| 01.11.2017, 15:52 | ||
|
Добавлено через 1 минуту Перемещайтесь на vbs - там помогут.
0
|
||
| 01.11.2017, 15:52 | |
|
Помогаю со студенческими работами здесь
20
Запуск с правами администратора Запуск ПО с правами администратора в домене
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|