Здравствуйте.
1С:Предприятие 8.3 (8.3.8.1784). Хочу перезапустить Службу из 1с при помощи скрипта Windows Shell.

```1c
    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с тоже под администратором.
Что я сделал неправильно ?

Спасибо.
---
```1c
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("net stop w3logsvc");
```
---
где код выполняется- на клиенте или на сервере?
---
этот код так и идет последовательно?
Проблема скорее всего в том, что код запуска скрипта не ожидает завершения и продолжает следующий код. На момент второго запуска скрипта, первый еще не отработал и служба не доступна.
---
можно и без WScript обойтись:

```1c
    КомандаСистемы("powershell Stop-Service -Name w3logsvc -Force");
    КомандаСистемы("powershell Start-Service -Name w3logsvc");
```

Тоже и для net stop w3logsvc актуально.
---
На клиенте
---
а служба запущена где? на сервере скорее всего?
---
У нас база клиент серверная. Я так понял если мы запустим этот скрипт на сервере то и службы будут вырубаться на сервере где находится база. Мне нужно что скрипт исполнился Там где я запустил 1с предприятие поэтому исполняю на клиенте .
---
а что за команды "Stop-Service" и "Start-Service" ? Знаю есть "net stop" и "net start"
---
Прошу прощения что сразу не привел пример кода:

```1c
    &НаКлиенте
    Процедура ВыключитьСлужбу(Команда)

    //КомандаСистемы("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" );

    КонецПроцедуры
```
---
WshShell.Run("Start-Service -Name w3logsvc" );
откуда WScript.Shell знает, что это команда PowerShell?
---
аха-ха. вот откуда и PS в начале
---
а ругается стоп или старт?

```1c
    WshShell.Run("PS C:\Windows\system32> Stop-Service -Name w3logsvc -Force");
```
 смущает "PS " в начале строки
---
Вариант с PS - я просто скопировал из командной строки.
Падает в Обоих случаях.
---
замените на "net stop" и "net start"
---
если нужно через PowerShell, тогда так:

```1c
    WshShell.Run("powershell Stop-Service -Name w3logsvc -Force");
    ...
    // и соответственно старт:
    WshShell.Run("powershell Start-Service -Name w3logsvc");
```
---
Так вывалилась таже ошибка:

 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");
---
```1c
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run("net stop w3logsvc");
```
---
Заработало!
Спасибо большое. Очень помогли.