Как перезапустить word скриптом
Перейти к содержимому

Как перезапустить word скриптом

PowerShell: автоматический перезапуск приложения/процесса при сбое

date13.04.2021
useritpro
directoryPowerShell, Windows 10, Windows Server 2016
commentsкомментариев 5

Рассмотрим, как с помощью PowerShell проверить, запущено ли определенное приложение или процесс, как автоматически перезапустить его при сбое, если его случайно закрыл пользователь или он стал утекать (использовать слишком много оперативной памяти).

Ранее мы показывали, как с помощью PowerShell можно управлять процессами Windows. Чтобы проверить, запущен ли процесс notepad.exe и перезапустить его, можно использовать такой скрипт.

If (!(Get-Process -Name notepad -ErrorAction SilentlyContinue))

Можно автоматически перезапустить процесс, если он не отвечает (завис) или если он стал использовать слишком много оперативной памяти (в этом примере более 500 Мб):

$proc = Get-Process -Name notepad| Sort-Object -Property ProcessName -Unique
If (($proc.Responding -eq $false) –or ($proc.WorkingSet -GT 500000*1024)) <
$proc.Kill()
Start-Sleep -s 10
Invoke-Item C:\Windows\notepad.exe
>

С помощью for можно сделать бесконечный цикл, который запускает процесс, каждые 60 секунд проверяет что он запущен и перезапускает его, если нужно:

powershell как перезапустить процесс или приложение, если его закрыли или оно зависло

$proc = Get-Process -ComputerName PC01 -Name notepad | Sort-Object -Property ProcessName -Unique -ErrorAction SilentlyContinue

Для удаленного запуска процесса можно использовать Invoke-Command:

Invoke-Command -ComputerName PC01 -Credential $Cred -ScriptBlock

В этом случае нужно сохранить PowerShell код в файле с расширением PS1. Можно подписать этот скрипт цифровой подписью, изменить настройки политики запуска PowerShell скриптов, или запускать его с параметром –ExecutionPolicy Bypass .

  • Имя запускаемого файла: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe
  • Параметры запуска: -windowstyle hidden -ExecutionPolicy Bypass –Noprofile -file %

Также можно запускать PS1 скрипт по расписанию с помощью задания планировщика. Используйте аналогичные параметры запуска. Дополнительно можно указать учетную запись пользователя, от имени которого запускать процесс.

Автоматический перезапуск службы агента сервера 1С — скрипт + расписание

Добрый день. Поступила заявка от 1С-ников, что необходимо ночью перезапускать службу агента сервера 1С на 8-ке. Как многим известно, что данную службу просто так нельзя «перезапустить», иначе зависшие сессии так и остаются «висеть», ее необходимо сначала остановить, а после снова запустить. Порывшись немного в интернете, пересмотрев кучу скриптов — собрал из многообразия один, не большой, полностью рабочий, уже оттестировал его на серверах, теперь выкладываю на ваше обозрение и пользование.

Скрипт перезапуска службы агента сервера 1С

Собственно сам скрипт:

  1. Первым делом отключаем уведомления о выполнении, пусть это все работает в фоновом режиме
  2. Далее указываем где будет хранится наш лог-файл, куда будет писаться дата и время запуска и остановки службы (можно не писать лог, но на всякий случай пусть будет)
  3. Пишем в Лог дату и время начала остановки
  4. Останавливаем службу агента сервера, в моем случае она называется так — 1C:Enterprise 8.3 Server Agent (1640) и пишем ее статус в лог файл (ниже приведу пример что в логе появляется)
  5. Далее делаем задержку в 15 секунд, чтобы дождаться, пока служба останавливается (пинг равен примерно 1 секунде, первый проходит моментально, поэтому делаем время в секундах +1)
  6. Опять записываем в лог дату в время
  7. Запускаем службу обратно
  8. Делаем задержку в 5 минут, если служба не остановилась за 15 секунд, то она не запустится естественно, что то видимо зависло сильно и будем ждать 5 минут.
  9. Далее проверяем, запустилась ли служба и работает ли она? Если не работает, то выполняем ее повторный старт.
  10. Завершаем работу с cmd.

Пример лог файла:

12.10.2017 0:00:00,10
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» останавливается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно остановлена.
12.10.2017 0:00:15,33
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» запускается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно запущена.
12.10.2017 1:00:00,15
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» останавливается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно остановлена.
12.10.2017 1:00:15,37
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» запускается.
Служба «Агент сервера 1С:Предприятия 8.3 (1640)» успешно запущена.

Настройка выполнения *.bat по расписанию

Для начала идем в «Пуск -> панель управления -> Администрирование» и запускаем там «Планировщик заданий«.

Выбираем пункт «Создать задачу«:

На вкладке «Общие» задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.

Далее идем в закладку Триггеры и настраиваем, когда нам надо запускать задачу. В моем случае это ежедневно выполнять в 00:00 и повторять ее каждый час в течении 7 часов.

Далее идем во вкладку Действия и создаем действие на выполнения скрипта.

Все, на этом все готово. Как можем увидеть в журнале, задача с такими параметрами успешно выполняется и ровно то время, которое у нас задано в скрипте:

Как (и почему) запустить Microsoft Word из командной строки

слово логотип

Как и большинство приложений, вы можете запускать Word из командной строки, но Word также поддерживает несколько дополнительных параметров для управления процессом запуска.

Вводите ли вы команду в командной строке, используйте ее для создания ярлыка , вставьте ее как часть пакетного сценария , запуск Word с дополнительными параметрами позволяет выполнять такие действия, как запуск Word в безопасном режиме для устранения неполадок или запуск с определенного шаблона.

Использование командной строки для запуска Word

Прежде чем мы сможем открыть Word с помощью командной строки, нам нужно выяснить, в каком каталоге находится файл winword.exe. Вы можете сделать это вручную, или вы можете просто найти командную строку для вас. Для этого откройте командную строку, откройте меню «Пуск», введите «cmd» и выберите приложение «Командная строка».

Откройте командную строку в меню «Пуск»

Когда вы откроете командную строку, вы окажетесь в каталоге верхнего уровня — папке вашей учетной записи пользователя. Нам нужно копать глубже, зайдя в каталог Program Files. Сделайте это, введя следующую команду и нажав Enter:

CD \ «программные файлы (x86)»

Программные файлы в командной строке

Теперь вы будете в каталоге Program Files. Следующий шаг — найти каталог, в котором находится файл winword.exe. Сделайте это, набрав следующую команду и нажав «Enter».

dir winword.exe / s

Как только вы введете эту команду, командная строка найдет каталог для вас.

Каталог Winword

Теперь, когда вы знаете каталог, в котором находится файл winword.exe, вы можете использовать команду cd, чтобы открыть путь к файлу. В этом примере вам нужно будет ввести следующую команду:

cd Microsoft Office \ root \ Office16

Теперь вы должны быть в каталоге, где находится winword.exe.

Открыть файл Winword

Теперь, если вы хотите открыть Microsoft Word так же, как если бы вы открывали его с помощью его значка, все, что вам нужно сделать, это набрать winword и затем нажать «Enter», и Word откроет его обычным способом.

Открыть нормальное слово

Однако весь смысл использования команды в том, что вы можете использовать различные параметры и параметры, которые она предлагает.

Общие параметры командной строки Word и параметры

Заимствованный из официального сайта поддержки Microsoft Office , здесь приведен список некоторых возможных способов открытия Word вместе с соответствующей командой.

Вы также можете запустить Word в безопасном режиме, удерживая нажатой клавишу Ctrl при запуске Word из меню «Пуск», и создание ярлыка с этим параметром делает это намного проще.

Пример: Предположим, что мы хотим открыть документ, хранящийся на диске C с именем example.docx, мы набрали бы следующую команду:

Примечание. Не ставьте пробел между ключом и именем файла.

Пример: чтобы запустить Word и открыть существующий файл example.docx, хранящийся на диске C, введите следующее:

Чтобы открыть несколько файлов example.docx и example2.docx, расположенных одновременно на диске C, введите следующее:

/tc:\example.docx c: \ example2.docx

Пример. Чтобы запустить Word и создать новый документ на основе файла example.docx, хранящегося на рабочем столе, введите следующее:

/ f «c: \ Documents and Settings \ Все пользователи \ Рабочий стол \ example.docx»

Пример: чтобы запустить Word и открыть копию файла example.docx, хранящегося в библиотеке документов по URL-адресу http: // MySite / Documents, введите следующее:

/ h http: //MySite/Documents/example.docx

Примечание. Если документ извлечен для вас, параметр / h не действует. Word открывает файлы, чтобы вы могли их редактировать.

Пример. Чтобы запустить и применить XSLT MyTransform, сохраненный на диске C, введите следующее:

/pc:\MyTransform.xsl c: \ Data.sml

Пример: чтобы запустить Word и загрузить надстройку Sales.dll, хранящуюся на диске C, введите следующее:

Примечание. Не вводите пробел между коммутатором и именем надстройки.

Пример: чтобы запустить Word, а затем запустить макрос Salelead, введите следующее:

Примечание. Не включайте пробел между коммутатором и именем макроса.

Это все, что нужно сделать! Теперь вы сможете открыть Word любым конкретным способом, просто выбрав эти команды.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *