Перезапуск процесса в windows

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

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

If (!(Get-Process -Name notepad -ErrorAction SilentlyContinue))
{Invoke-Item C:\Windows\notepad.exe

}

Можно автоматически перезапустить процесс, если он не отвечает (завис) или если он стал использовать слишком много оперативной памяти (в этом примере более 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 секунд проверяет что он запущен и перезапускает его, если нужно:

for(;;)
{

try
{
If (!(Get-Process -Name notepad -ErrorAction SilentlyContinue))
{Invoke-Item C:\Windows\notepad.exe
}
$proc = Get-Process -Name notepad | Sort-Object -Property ProcessName -Unique -ErrorAction SilentlyContinue
If (!$proc -or ($proc.Responding -eq $false) –or ($proc.WorkingSet -GT 200000*1024)) {
$proc.Kill()
Start-Sleep -s 10
Invoke-Item C:\Windows\notepad.exe
}
}
catch
{
}
Start-sleep -s 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 {Start-Process C:\Windows\notepad.exe -wait -verb runas;}

Вы можете запустить этот PowerShell скрипт в виде логон скрипта GPO при входе пользователя.

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

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

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

$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-windowstyle hidden -ExecutionPolicy Bypass -file %windir%\CheckProcess.ps1"
$Trigger= New-ScheduledTaskTrigger -AtLogon
$Principal=New-ScheduledTaskPrincipal -UserId "aaivanov" -LogonType Interactive
$Task=New-ScheduledTask -Action $Action -Trigger $Trigger -Principal $Principal
Register-ScheduledTask -TaskName "Check Notepad Process" -InputObject $Task

Либо этот PowerShell скрипт можно запускать в виде службы Windows

Если в запущенном приложении не требуется взаимодействие с пользователем, лучше всего запускать его в виде службы. В дальнейшем вы можете управлять этой службой через стандартную консоль services.msc или через PowerShell. В Windows есть встроенный функционал перезапуска служб либо вы можете перезапускать зависшую службу так.

Here is an easy way to restart a program with the Windows command line by using the Windows command script. In this situation, I will create a script to restart Outlook minimized. There might be other specific needs, and some of them are in this post.

Restart program with Windows command line in 2 steps

  1. Use command taskkill to close the program by using the image name of the process to be terminated. Here is another example of how to close Excel with the Windows command line.
  2. Use command start to open the program and minimized if necessary. Here are is more about running minimized.
taskkill /f /im outlook.exe

start /min outlook.exe

What’s next?

You can put those two lines of code in a batch or cmd file and schedule with Windows Scheduler.

If you would like to loop that, you can do this with the help of a Windows command script. Also, you can run Window command scripts conditionally inside a batch file.

If you are working with Windows batch files then it is a good idea to run them minimized. Nothing can be more annoying than a window popping up in situations where you don’t want it.

Another tool is Autologon that might be useful after Windows restart to log in user automatically. This and other tools from Microsoft Sysinternals utilities might be very helpful with various automation and other tasks.

При изменении настроек оформления Windows 11, Windows 10 и предыдущих версий системы с помощью реестра или твикеров, а также при возникновении проблем с работой компонентов системы, реализуемых Проводником (например, рабочего стола), зависаниях проводника, после установки программ, интегрирующихся в explorer.exe и в других ситуациях может потребоваться перезапустить Проводник.

В этой инструкции — быстрые способы перезапустить проводник Windows 11, Windows 10, 8.1 и Windows 7, если это потребовалось.

Перезапуск проводника Windows 11 и Windows 10

В Windows 11 и Windows 10 самый быстрый вариант перезапуска проводника — использование диспетчера задач:

  1. Нажмите правой кнопкой мыши по кнопке Пуск и выберите пункт «Диспетчер задач».
  2. В диспетчере задач найдите Проводник в списке «Процессы Windows».
  3. В Windows 11 нажмите «Перезапустить задачу» в панели вверху. Если пункт не отображается, нажмите по трем точкам в правой её части.
    Перезапустить проводник Windows 11

  4. В Windows 10 нажмите кнопку «Перезапустить» внизу списка процессов.
    Перезапустить проводник Windows 10

В результате проводник будет закрыт и запущен заново автоматически.

При желании, вы можете перезапустить проводник в командной строке (способ сработает для всех версий Windows), для этого:

  1. Запустите командную строку от имени Администратора.
  2. По порядку выполните следующие две команды
    taskkill /f /im explorer.exe
    start explorer.exe

Быстрый способ закрыть explorer.exe с последующим его перезапуском в Windows 8.1 и Windows 7

Начнем с Windows 7: если вы нажмете клавиши Ctrl + Shift на клавиатуре и кликните правой кнопкой мыши в свободном месте меню «Пуск», то вы увидите пункт контекстного меню «Выход из Проводника», который, собственно, и закрывает explorer.exe.

Выход из проводника в Windows 7

В Windows 8.1 и 8 (работает и в Windows 10) для этой же цели удерживайте клавиши Ctrl и Shift, а затем кликните правой кнопкой мыши в пустом месте панели задач, вы увидите аналогичный пункт меню «Выход из проводника».

Для того, чтобы снова запустить explorer.exe (кстати, он может перезапуститься автоматически), нажмите клавиши Ctrl + Shift + Esc, должен будет открыться диспетчер задач.

Новая задача в диспетчере задач

В главном меню диспетчера задач выберите «Файл» — «Новая задача» (Или «Запустить новую задачу» в последних версиях Windows) и введите explorer.exe, после чего нажмите «Ок». Рабочий стол Windows, проводник и все его элементы снова загрузятся.

Запуск проводника Windows

Также в Windows 8.1 и Windows 7 все действия по перезапуску проводника можно выполнить и в диспетчере задач: найти процесс Проводник (explorer.exe), снять задачу, а затем через меню «Файл» — «Запустить новую задачу» запустить explorer.exe снова.

К перезапуску Проводника Windows обычно прибегают, когда нужно устранить последствия мелкого сбоя в работе оболочки системы, также Проводник перезапускают после применения твиков реестра, чтобы внесенные изменения смогли вступить в силу. Перезапуск процесса explorer.exe, который отвечает за работу Проводника, поддерживается всеми популярными версиями Windows, в том числе Windows 11. По сравнению с предыдущей версией системы способы перезапуска не изменились, если не считать названий некоторых элементов интерфейса.

Это самый простой и очевидный способ перезапустить Проводник в Windows 11. Откройте Диспетчер задач любым удобным вам способам, отыщите в списке текущих процессов «Проводник» и нажмите кнопку «Перезапустить задачу». Также вы можете кликнуть по процессу правой кнопкой мыши и выбрать в контекстном меню опцию «Перезапустить». 

Для перезапуска Проводника также можно использовать средства классической командной строки или PowerShell, объединенных интерфейсом приложения Windows Терминал. Запустите его от имени администратора из контекстного меню кнопки Пуск и выполните команду taskkill /f /im explorer.exe, в результате чего Проводник будет закрыт. Чтобы его запустить, выполните тут же вторую команду start explorer.exe.

Если к перезапуску Проводника прибегать приходится часто, есть смысл создать простенький скрипт, который избавит вас от необходимости каждый раз прибегать к Терминалу, вручную вводить и выполнять команды. Создайте Блокнотом текстовый файл и вставьте в него три строчки кода:

taskkill /f /IM explorer.exe

start explorer.exe

exit

Сохраните файл с произвольным именем, но обязательно с расширением BAT или CMD. 

При желании вы можете создать на этот файл ярлык и разместить его в любом удобном расположении. А еще вы можете автоматизировать запуск скрипта с помощью Планировщика заданий, указав условия, при выполнении которых скрипт станет запускаться самой Windows.  

И раз уж пошел разговор об упрощении, предложим вашему вниманию еще один вариант – интеграцию опции перезапуска Проводника в его контекстное меню. Для этого мы предлагаем воспользоваться готовым твиком рееста, скачать архив с которым вы можете по этой ссылке. Твик создавался для Windows 10, но он работает и в одиннадцатой версии системы. Распакуйте архив, откройте файл Add Restart Explorer Context Menu.reg и подтвердите добавление данных в реестр.

Результатом применения твика станет появление в дополнительном контекстном меню пункта «Рестарт Проводника» с двумя подпунктами «Перезапустить Проводник» и «Перезапустить Проводник с паузой». 

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

Перезапуск с задержкой пригодится в ситуации, когда пользователю необходимо выполнить определенные действия при закрытом Проводнике, например, удалить или отредактировать удерживаемый процессом explorer.exe файл, выполнить копирование с заменой в стороннем файловом менеджере или заранее запущенном экземпляре командной строки либо PowerShell.

Introduction: Make a Program Restart Command

I was making much modifications on Windows, so I had to restart «explorer.exe» fairly often. I used it that much that I created a restart command.

Step 1: Make the Batch File

Open windows explorer, and navigate to an easy accessible path where you want to temporary save a file. Click the right mouse button, hover over «New», and click «Text Document».

Give it the name you want the command to be called (restart), followed by .bat (restart.bat), and make sure there is no .txt extension after the filename. If a dialog opens about changing the file extension, you did it the right way and click «Yes».

Right click the file and click «Edit».

Step 2: Typing Some Code…

So, you probably have notepad open with in the title bar «yourFileName.bat — Notepad».

Okay, let’s add some code!

1) First, we have to check that there is an argument passed, the program name. This can be done using:

@if %1.==. (goto error) ELSE (goto restart)

2) Next, add the function «restart»:

:restart

The command to kill the program:

@taskkill /f /im %1 >nul

Wait a couple of seconds (3):

@timeout /t 3 /nobreak >nul

Start the program again:

@start %1 >nul

Say something, and go to the end of the file:

@echo restart complete
@goto exit

3) Add the function «error»:

:error

Say something, and go to the end of the file:

@echo Oops... something went wrong!

4) Add the function «exit»:

:exit

Creating code finished… Hit save (Ctrl + S), and close notepad.

Step 3: Moving the File

Back at windows explorer, select your just finished file, and hit «Cut» (Ctrl + X). Navigate to C:\Windows\System32, and paste the file (Ctrl + V).

Step 4: Test Your Command

Open Command prompt (# + R, cmd.exe) and type «insertYourCommandNameHere explorer.exe». (restart explorer.exe). Your taskbar should disappear and reappear again. !!! All your open explorer windows will be closed too !!!.

Step 5: The Full Code:

@if %1.==. (goto error) ELSE (goto restart)

:restart
@taskkill /f /im %1 >nul @timeout /t 3 /nobreak >nul @start %1 >nul @echo restart complete @goto exit

:error
@echo Please specify a program... @goto exit

:exit

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Установить bluetooth на компьютер windows 10 pro
  • Откроется ли презентация keynote в windows
  • Медиаплеер classic для windows 10
  • Microsoft windows vista with sp2
  • Как включить макросы в excel 2019 на windows 10