1. Alex123Aa 21.05.19 16:00 Сейчас в теме

Скрипт Windows Shell из 1с

Здравствуйте.
1С:Предприятие 8.3 (8.3.8.1784). Хочу перезапустить Службу из 1с при помощи скрипта Windows Shell.
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("PS C:\Windows\system32> Stop-Service -Name w3logsvc -Force");

    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("Start-Service -Name w3logsvc" );


Запускал код из командной строки. Все отработало нормально .

При выполнении этого кода из обработки. Вылетает ошибка: "Произошла исключительная ситуация 0х80070002"
Запускал 1с тоже под администратором.
Что я сделал неправильно ?

Спасибо.
Найденные решения
15. tvm 21.05.19 16:59 Сейчас в теме
(14)
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("net stop w3logsvc"); 
Alex123Aa; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
2. tvm 21.05.19 16:10 Сейчас в теме
(1) где код выполняется- на клиенте или на сервере?
7. spacecraft 21.05.19 16:37 Сейчас в теме
(1) этот код так и идет последовательно?
Проблема скорее всего в том, что код запуска скрипта не ожидает завершения и продолжает следующий код. На момент второго запуска скрипта, первый еще не отработал и служба не доступна.
18. spacecraft 21.05.19 18:12 Сейчас в теме
(1) можно и без WScript обойтись:
КомандаСистемы("powershell Stop-Service -Name w3logsvc -Force");
КомандаСистемы("powershell Start-Service -Name w3logsvc");

Тоже и для net stop w3logsvc актуально.
3. Alex123Aa 21.05.19 16:11 Сейчас в теме
4. tvm 21.05.19 16:16 Сейчас в теме
(3) а служба запущена где? на сервере скорее всего?
5. Alex123Aa 21.05.19 16:23 Сейчас в теме
У нас база клиент серверная. Я так понял если мы запустим этот скрипт на сервере то и службы будут вырубаться на сервере где находится база. Мне нужно что скрипт исполнился Там где я запустил 1с предприятие поэтому исполняю на клиенте .
6. tvm 21.05.19 16:35 Сейчас в теме
(5) а что за команды "Stop-Service" и "Start-Service" ? Знаю есть "net stop" и "net start"
8. Alex123Aa 21.05.19 16:39 Сейчас в теме
Прошу прощения что сразу не привел пример кода:

&НаКлиенте
Процедура ВыключитьСлужбу(Команда)
	
	//КомандаСистемы("PS C:\Windows\system32> Stop-Service -Name w3logsvc -Force"); //
	
	WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("PS C:\Windows\system32> Stop-Service -Name w3logsvc -Force");

КонецПроцедуры

&НаКлиенте
Процедура ВключитьСлужбу(Команда)
	
	//КомандаСистемы("PS C:\Windows\system32> Start-Service -Name w3logsvc"); 
	
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("Start-Service -Name w3logsvc" );


КонецПроцедуры
Показать
9. spacecraft 21.05.19 16:43 Сейчас в теме
(8)
WshShell.Run("Start-Service -Name w3logsvc" );

откуда WScript.Shell знает, что это команда PowerShell?
11. tvm 21.05.19 16:44 Сейчас в теме
(9) аха-ха. вот откуда и PS в начале
10. tvm 21.05.19 16:43 Сейчас в теме
(8) а ругается стоп или старт?
 WshShell.Run("PS C:\Windows\system32> Stop-Service -Name w3logsvc -Force");
смущает "PS " в начале строки
12. Alex123Aa 21.05.19 16:49 Сейчас в теме
Вариант с PS - я просто скопировал из командной строки.
Падает в Обоих случаях.
Прикрепленные файлы:
13. tvm 21.05.19 16:50 Сейчас в теме
(12) замените на "net stop" и "net start"
Alex123Aa; +1 Ответить
17. spacecraft 21.05.19 17:56 Сейчас в теме
(12) если нужно через PowerShell, тогда так:
WshShell.Run("powershell Stop-Service -Name w3logsvc -Force");
...
// и соответственно старт:
WshShell.Run("powershell Start-Service -Name w3logsvc");
14. Alex123Aa 21.05.19 16:56 Сейчас в теме
Так вывалилась таже ошибка:

WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("PS C:\Windows\system32> net stop -Name w3logsvc -Force");

Так ошибки отработало без ошибки , Но Служба не вырубилась:

WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("net stop -Name w3logsvc -Force");
15. tvm 21.05.19 16:59 Сейчас в теме
(14)
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("net stop w3logsvc"); 
Alex123Aa; +1 Ответить
16. Alex123Aa 21.05.19 17:06 Сейчас в теме
Заработало!
Спасибо большое. Очень помогли.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Хабаровск
зарплата от 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Ижевск
зарплата от 70 000 руб. до 94 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день