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 Сейчас в теме
Заработало!
Спасибо большое. Очень помогли.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант ERP-систем
Москва
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Бизнес-аналитик 1С
Москва
зарплата от 90 000 руб. до 150 000 руб.
Полный день

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

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