Имя: Пароль:
1C
1C 7.7
v7: Выполнение bat файлов
,
0 MiracMC
 
27.08.14
20:18
Приветствую...

Есть задачка генерировать и выполнять *.bat файлы.
Кодом генерирую, сохраняю и выполняю при помощи WScript.Shell.Run вот так:

Т1=СоздатьОбъект("Текст");                                        
Т1.ДобавитьСтроку("rwinsta " + ИД + " /server:" + СокрЛП(Сервер.Адрес));
Т1.Записать(КаталогИБ()+"check_.bat");
Батник = КаталогИБ()+"check_.bat";
Попытка
    Shell = СоздатьОбъект("WScript.Shell");
    Shell.Run(Батник,0,1);    
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

В итоге файл создан и осуществлена попытка выполнения, но эффекта нет. Ничего не происходит.
Если этот же bat-ник запустить вручную - выполняется нормально.

Не могу понять в чем проблема. Хотя предполагаю, что именно в самой команде RWINSTA, так как если, к примеру вот такой батник создать

Т1=СоздатьОбъект("Текст");                                        
Т1.ДобавитьСтроку("qwinsta /server:" + СокрЛП(Сервер.Адрес) + " > " + Симв(34) + файлРезультата + Симв(34));
Т1.Записать(КаталогИБ()+"check.bat");
Батник = КаталогИБ()+"check.bat";
Попытка
    Shell = СоздатьОбъект("WScript.Shell");
    Shell.Run(Батник,0,-1);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

Все работает нормально....
1 Партизан
 
27.08.14
20:24
(0) какая необходимость работать именно с BAT файлами, а не с CMD ?
2 MiracMC
 
27.08.14
20:29
да по сути можно и с CMD на прямую...
какие есть варианты?

ЗЫ дело все в том, что с другими командами CMD такая же конструкция работает. Более того скажу, что и на другой машине, но с такой же ОС (Win2003Enterprise) и правами работает нормально... а тут лажа какая то(((
3 Партизан
 
27.08.14
20:35
(2) bat файлы не работают в х64 виндах, т.к. работают через command.com
4 MiracMC
 
27.08.14
20:39
система х32

говорю еще раз... другие команды, типа ping, qwinsta ... переданы через такую же конструкцию в батник выполняются нормально... а вот именно с rwinsta возникла некая проблема... уже понимаю, вроде, что дело в правах... но пользователь то админ......
5 Crush
 
27.08.14
20:44
А если     Shell.Run(Батник);  
И в самом батнике паузу в конце влепить?
6 MiracMC
 
27.08.14
21:08
по идее запуск через Run(команда,режим_окна,режим_ожидания) в моем случае режим_окна = 0, т.е. без окна (не видимое) и режим_ожидания = 1, т.е. ожидать окончания подразумевать, что именно ждать завершения оно и будет..

я пробовал режим_окна = 1... так окно просто помигивает и все... вывод результата в файл тоже результата не дал... файл пустой...
7 Z1
 
27.08.14
21:25
(0) Возьми сом объект
http://www.1cpp.ru/forum/YaBB.pl?num=1178538146/10#10
и запускай через него.
8 MiracMC
 
27.08.14
21:31
(7) ссылка в посте, на который Вы ссылаетесь приводит к "Веб-сайт, на который вы хотите перейти, содержит вредоносное ПО!" ))))
9 Z1
 
27.08.14
21:34
(8) не очень понимаю.
файл есть в приведенном в 7 посте сайта 1cpp
10 КонецЦикла
 
27.08.14
21:37
Через команду системы попробуй
11 КонецЦикла
 
27.08.14
21:39
... и через ЗапуститьПриложение - мне помогло запускать скрипты vbs
12 MiracMC
 
27.08.14
21:39
(9) файл то есть... а вот статья с описанием с сайта "проклуб" выдает то, что я написал выше...

(10) по подробней, если можно....
13 MiracMC
 
27.08.14
21:39
(11) сейчас попробую через ЗапуститьПриложение ...
14 MiracMC
 
27.08.14
21:41
не... эффект то же... окно помигивает и ничего не происходит((((
15 КонецЦикла
 
27.08.14
21:44
Попробуй на vbs написать
16 MiracMC
 
27.08.14
22:01
умудрился словить принтскрином окно, которое мигало при выполнении батника... так там вот какая штука

"rwinsta" не является внутренней или внешней командой...

но если в окне cmd написать эту команду - работает на ура...

что это может быть?
17 Партизан
 
27.08.14
22:07
(16) а ты напиши эту команду в окне command.com
18 ДенисЧ
 
27.08.14
22:08
(16) пути - они хитрая штука...
19 Crush
 
27.08.14
22:08
(16) содержимое переменной %PATH%
20 MiracMC
 
27.08.14
22:18
(17) так и не понял куда написать? в CMD? так говорю ж.. работает...
(16) это то понятно... что сделать то?
(17) %PATH% возвращает c:\windows\system32... дописіваю его в батник, что б получилось
c:\windows\system32\rwinsta 12833/server:192.168.0.1

все равно нет такой команды
21 Партизан
 
27.08.14
22:19
(20) cmd.exe и command.com - немного разные вещи
22 Партизан
 
27.08.14
22:22
23 MiracMC
 
27.08.14
22:22
(21) не спорю... но у меня его нет, я так понимаю...
24 Партизан
 
27.08.14
22:25
(23) ну как-бы батники выполняются в command.com, а не в cmd, а если система х32, то почему нет?
25 MiracMC
 
27.08.14
22:29
(24) "лыжи не едут..." как его запустить то?
26 MiracMC
 
27.08.14
22:35
C:\WINDOWS\system32\rwinsta.exe 12833 /server:192.168.0.1

так тоже не видит его...
права проверил.. разрешения тоже(((

повторюсь, но так же команда, хоть с полным путем, хоть без такового из CMD выполняется на ура(((
27 Партизан
 
27.08.14
22:36
28 Партизан
 
27.08.14
22:40
че насчет (22) ?
29 MiracMC
 
27.08.14
22:47
почитал... но это немного не то, что у меня..
файл rwinsta.exe есть на своем месте в C:\WINDOWS\system32\.
если я его через cdm руцями пишу - работает. если я созданый батник подкидываю в CMD - тоже работает... а вот через RUN - нет и хоть ты тресни((((
30 Партизан
 
27.08.14
22:49
(29) ну так запиши в RUN принудительно, что запускать через CMD, а не по расширению
31 MiracMC
 
27.08.14
22:50
(27) моя ОС Windows 2003 Ent не находит такую команду или файл ((((
32 Партизан
 
27.08.14
23:03
(31) странно, но скриншот с Windows 2003, standard правда, но дистрибутив-то ведь один?
33 mehfk
 
27.08.14
23:03
(3) Бабушка сказку рассказала?
34 Партизан
 
27.08.14
23:07
(33) да,конечно ))
(31) можешь не проверять, проверил, rwinsta у меня запускается
35 Jump
 
27.08.14
23:13
(0)Проблема вестимо в путях и правах.
Поясню
- запускаешь батник руками - он запускается из той директории где лежит, и под твоими правами.

-запускаешь из кода или планировщика - он запускается не из той директории где лежит, и пользователь скорее всего будет встроенная учетная запись system.

В общем смотри права пользователя system и относительные пути.
36 Jump
 
27.08.14
23:14
Для отладки - перенаправь вывод в лог файл, увидишь что происходит.
37 mehfk
 
27.08.14
23:15
(34) Такой большой, а в сказки веришь :)
38 Партизан
 
27.08.14
23:17
(37) все вышенаписанное мной можно считать непроверенным бредом, ну, почти.
(35) >>  он запускается не из той директории где лежит
он же полные пути указывал.
39 Jump
 
27.08.14
23:19
(38)Повторю - внимательно смотреть пути и права.
Либо то либо другое, или все вместе.
40 Jump
 
27.08.14
23:20
Цитирую (20) "c:\windows\system32\rwinsta 12833/server:192.168.0.1 "
А теперь вспоминаем что у пользователя system под которым запуститься батник НЕТ ПРАВ НА СЕТЬ!
41 MiracMC
 
28.08.14
00:10
(40) вопрос далеко не в сети, так как ошибка описана в (16)

на самом деле я решил задачу, но несколько не стандартным способом.
корень проблемы был с том, что ОС, на которой я сейчас колдовал регулярно получала обновления, а ОС, на которой я это все дело тестировал - такая же, но на виртуальной машине и апдейтов в глаза никогда не видела.
как следствие файл rwinsta.exe на обновленной ОС весил 25 Кб, а на моей "виртуалке" всего 17 кб...
я скопировал файл rwinsta.exe с виртуалки в каталог базы, которую настраиваю сейчас и прописал жестко путь в батнике именно к этому файлу.
все заработало...

всем спасибо за содействие и напутствие...
AdBlock убивает бесплатный контент. 1Сергей