РЕКОМЕНДУЕМ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы
Подлинный файл taskkill.exe является одним из компонентов программного обеспечения Microsoft Windows, разработанного Microsoft .
Windows – это операционная система. Инструмент Task Kill – это утилита Microsoft, которая позволяет пользователям завершать одну или несколько задач или процессов. Taskkill.exe – это файл, который запускает Task Kill Tool и не представляет никакой угрозы для вашего ПК. Windows – это семейство операционных систем, разработанных, продаваемых и продаваемых Microsoft. Windows, представленная в 1985 году, когда-то имела более 90% доли на рынке домашних ПК. Task Kill Tool заменяет Kill Tool и является службой Windows, которая позволяет пользователям завершать одну или несколько задач или процессов либо по идентификатору процесса, либо по имени изображения. Есть несколько параметров командной строки, связанных с инструментом «Убить задачу», таких как / f, PID и Pattern *.
Корпорация Microsoft, основанная в 1975 году, является американской технологической компанией, которая проектирует, разрабатывает и поддерживает компьютерное программное обеспечение, персональные компьютеры и бытовую электронику. Компания считается крупнейшим в мире производителем программного обеспечения с точки зрения выручки и наиболее ценных брендов в 2016 году, а прибыль в 2017 году составила $ 89, 95 млрд. В настоящее время ее штаб-квартира находится в Редмонде, штат Вашингтон, США.
Расширение .exe в имени файла указывает на файл exe cutable. Исполняемые файлы могут, в некоторых случаях, нанести вред вашему компьютеру. Поэтому, пожалуйста, прочитайте ниже, чтобы решить для себя, является ли файл taskkill.exe на вашем компьютере трояном, который вы должны удалить, или это файл, принадлежащий операционной системе Windows или доверенному приложению.

Taskkill.exe процесс в диспетчере задач Windows
Описание: оригинальный файл taskkill.exe является важной частью Windows и редко вызывает проблемы. Файл taskkill.exe находится в папке C: \ Windows \ System32. Известные размеры файлов в Windows 10/8/7 / XP составляют 75 776 байт (40% от всех случаев), 76 288 байт, 77 824 байт или 74 752 байт.
Файл taskkill.exe является системным файлом ядра Windows. Это файл, подписанный Microsoft. Программа не видна. Поэтому технический рейтинг надежности 2% опасности. Однако вам следует также прочитать отзывы пользователей.
Важное замечание : Некоторые вредоносные программы маскируют себя как taskkill.exe, например Trojan.Gen (обнаружен Symantec) и TROJ_GEN.R00UC0DAM15 (обнаружен TrendMicro). Таким образом, вы должны проверить файл taskkill.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера. Это был один из лучших вариантов загрузки The Washington Post и PC World .
Аккуратный и опрятный компьютер – это главное требование для избежания проблем с taskkill. Это означает запуск сканирования на наличие вредоносных программ, очистку жесткого диска с использованием 1 cleanmgr и 2 sfc / scannow, 3 удаления ненужных программ, проверку наличия программ автозапуска (с использованием 4 msconfig) и включение автоматического обновления Windows 5. Всегда не забывайте выполнять периодическое резервное копирование или, по крайней мере, устанавливать точки восстановления.
Если у вас возникла реальная проблема, попробуйте вспомнить последнее, что вы сделали, или последнее, что вы установили до того, как проблема появилась впервые. Используйте команду 6 resmon для определения процессов, которые вызывают вашу проблему. Даже для серьезных проблем, вместо переустановки Windows, лучше восстановить вашу установку или, для Windows 8 и более поздних версий, выполнить команду 7 DISM.exe / Online / Cleanup-image / Restorehealth. Это позволяет восстановить операционную систему без потери данных.
rimautoupdate.exe aces.exe wargamingerrormonitor.exe taskkill.exe vbtenum.sys bka.exe speedmon.exe aswlnpkg.dll клавиатураhookdll.dll icloud.exe winlaunch.exe
В данном видео мы рассмотрим команду Taskkill, которая позволяет завершать определенные процессы из командной строки в операционной системе Windows. Но в начале, как всегда, рассмотрим, зачем это вообще может понадобиться.
На обычных рабочих станциях данная команда не особо востребована, так как можно завершить процесс через диспетчер задач. Хотя, не всегда это получается и в данной ситуации команда Taskkill пригодится, но, это скорее исключение из правил.
В основном, данная команда используется системными администраторами и лично я сталкивался со следующими ситуациями:
1) Обновление программ на терминальном сервере – при администрировании терминального сервера большое количество людей может запустить одно и тоже приложение. Но, в большинстве случаев, при обновлении программы её необходимо сначала закрыть, т.е. завершить её процесс. Если клиентов не много, то, можно воспользоваться диспетчером задач, а если их порядка 100, то это уже проблематично. А команда Taskkill позволяет убить все процессы для определенного приложения.
2) Автоматический перезапуск программы – как вы знаете не все программы работают идеально и бывает, что они подвисают. А если данная программа должна работать 24 часа в сутки и 7 дней в неделю, то приходится периодически проверять её работоспособность.
Лично я сталкивался со следующей ситуацией: есть интернет магазин, в который данные о товарах выгружаются из 1С-ки. Но, обработчик написан как-то криво, в результате чего обмен подвисает раз в сутки, а то и через каждые 2-3 часа. По этому, появилась необходимость каждый час принудительно перезапускать обработчик, не зависимо от того, подвисла программа или нет.
И так, перейдем к практике.
Запустим браузер Google Chrome и попробуем завершить его процесс (Пуск \ Стандартные \ Выполнить \ cmd \ taskkill /? — чтобы посмотреть синтаксис команды)
/s КОМПЬЮТЕР, где КОМПЬЮТЕР — это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.
/u ДОМЕН\ПОЛЬЗОВАТЕЛЬ, где ДОМЕН — это имя домена, а ПОЛЬЗОВАТЕЛЬ — имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.
/p — обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.
/fi — позволяет выполнять команду taskkill с определенными фильтрами.
/f — принудительно завершает выполнение команды.
/IM — позволяет использовать имя приложения вместо идентификатора процесса.
/T — завершение дерева процессов.
Теперь нам нужно узнать имя приложения, которое использует данный процесс. Это можно сделать через диспетчер задач (Ctrl+Alt+Del \ Запустить диспетчер задач \ Процессы \ chrome.exe).
Если у вас нет возможности запустить диспетчер задач, допустим, вы подключились к компьютеру удаленно через командную строку, то можно воспользоваться командой tasklist, она так же отображает все процессы.
Taskkill /f /im chrome.exe – принудительно завершить приложение с именем chrome.exe
Chrome завершил работу, но появились ошибки «Не удалось завершить процесс, ни один из экземпляров задания не запущен». Данное сообщение появляется из-за того, что эти процессы были связанными и когда завершил работу основной, остальные автоматически завершились.
Теперь запустим Chrome под разными пользователями, чтобы сымитировать работу терминального сервера, для этого запустим под обычным пользователем и под пользователем XP (Chrome \ Shift \ ПКМ \ Запустить от имени другого пользователя \ ОК). Теперь мы видим, что одно и тоже приложение запущено под разными пользователями, повторим команду Taskkill /f /im chrome.exe, чтобы проверить, для всех ли пользователей будет завершен процесс.
Теперь попробуем сделать автоматический перезапуск приложения, в этом нам поможет планировщик задач (Пуск \ Все программы \ Стандартные \ Служебные \ Планировщик заданий \ Библиотека планировщика \ ПКМ \ Создать папку \ – в зависимости от вашей цели)
Создаем задачу на запуск (Создать новую задачу \ \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 11:00, повторять каждый час бесконечно, включено \ Действия: запуск программы, chrome \ ОК)
Создадим задачу на завершение процесса (Создать новую задачу \ Завершение \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 10:59:50, повторять каждый час бесконечно, включено \ Действия: запуск программы, Taskkill, дополнительные аргументы: /f /im chrome.exe \ ОК)
Теперь запустим Chrome и подведем часы к более близкому времени, чтобы увидеть, как Хром завершит работу, а потом запустится заново.
Однако, порой требуется запретить только процесс запущенный под определенным пользователем. Именно такая ситуация у меня возникла с обработчиком 1С, который выгружал данные о товарах на сайт.
Дело в том, что, можно каждый час перезапускать зависшую 1С-ку, но, если завершать все процессы 1С, то все удаленные пользователи будут из неё вылетать, а этого нельзя допустить. По этому, нужно завершать процесс, запущенный из под определенной учетной записи.
Запустим Chrome под другим пользователем и посмотрим, сработал ли фильтр.
Как завершить процессы в командной строке – TASKKILL
Команда Taskkill завершает одно или несколько заданий или процессов в операционной системе Windows. Скажу Вам из своего опыта – это очень полезная команда Cmd! Процессы могут быть уничтожены по кодоу процесса или имени образа. Лично я использую команду для завершения дерева процессов на серверах – одной командной можно завершить 100-ни зависших процессов, это очень удобно.
Совет – для просмотра текущих процессов системы (узнать pid процеесов) в командной строке использую команду TASKLIST.
Синтаксис и параметры команды TASKKILL
- /s компьютер – Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.
- /u домен\пользователь – Выполнение команды с разрешениями учетной записи пользователя, который указан как пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.
- /p пароль – Определяет пароль учетной записи пользователя, заданной параметром /u.
- /fi имя_фильтра – Применение фильтра для выбора набора задач.
- /pid код_процесса – Указывает код процесса, который необходимо завершить.
- /im имя_образа – Указывает имя образа процесса, который необходимо завершить. Используйте подстановочный знак (*) для указания всех имен образа.
- /f – Указывает, что процесс(ы) должен быть принудительно завершен. Этот параметр не действует для удаленных процессов, все удаленные процессы завершаются принудительно.
- /t – Задает завершение всех дочерних процессов вместе с родительским, такое действие обычно известно как уничтожение дерева.
- /? – Отображает справку в командной строке.
Примеры команды TASKKILL
Далее приведу примеры использования команды taskkill:
- taskkill /s comp1 /f /im notepad.exe
- taskkill /s comp1 /u teplosnab\ivanov /p p@ssW23 /im *
- taskkill /s comp1 /u teplosnab\ivanov /fi “USERNAME ne NT*” /im *
- taskkill /f /fi “PID ge 1000” /im *
- taskkill /pid 1230 /pid 1241 /pid 1253
- taskkill /f /fi “USERNAME eq NT AUTHORITY\SYSTEM” /im notepad.exe
Утилита командной строки Taskkill
Чтобы остановить процессы в локальной или удаленной системе, применяйте утилиту командной строки Taskkill. Процесс можно остановить по его идентификатору при помощи параметра /Pid или по имени образа, используя параметры. Если вам нужно остановить несколько процессов по их идентификатору или имени образа, укажите несколько параметров /Pid соответственно. Но будьте осторожны с именами образов, так как Taskkill останавливает все процессы, образы которых имеют данное имя.
Применение утилиты Taskkill
- Останов процесса с идентификатором 208: taskkill /pid 208
- Останов всех процессов с именем образа Cmd.exe: taskkill /im cmd.exe
- Принудительное завершение локального процесса 1346: taskkill /f /pid 1346
- Останов дерева процессов, начиная с родительского процесса 1248 и включая все дочерние процессы: taskkill /t /pid 1248.
В Taskkill имеется дополнительный фильтр Modules с операторами EQ и NE, что позволяет исключать или включать указанные DLL. При применении фильтров не указывайте конкретное имя образа или идентификатор процесса в качестве параметров. То есть в этом случае вы останавливаете процессы, исходя лишь из их соответствия критериям фильтра. Например, можно указать, чтобы были остановлены все процессы, которые перестали отвечать.
Как и в случае с Tasklist, вы можете задать несколько фильтров. Строка фильтра должна быть заключена в двойные кавычки. Следующие примеры иллюстрируют применение фильтров с утилитой Taskkill.
Останов не отвечающих экземпляров Cmd.exe: taskkill /im cmd.exe /fi “status eq not responding”.
Я запускаю событие пост-сборки Visual Studio, которое завершает работу IIS, если оно все еще выполняется после компиляции:
taskkill /f /im w3wp.exeСледующее работает отлично, если IIS все еще работает, но выдает ошибку, если оно уже остановлено:
Error 1 The process "w3wp.exe" not found. xxx\EXECЕсть ли способ заставить taskkill игнорировать проблему, если он не может найти подходящий запущенный процесс?
Вместо запуска одной команды будет работать небольшой командный файл?
tasklist /FI "IMAGENAME eq w3wp.exe" 2>NUL | find /I /N "w3wp.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /f /im w3wp.exeРешение, которое я нашел для этого, состояло в том, чтобы запустить
START /wait taskkill /f /im w3wp.exeОн возвращает успех из команды START, и любая ошибка, выдаваемая TASKKILL, генерируется в новом окне консоли.
изменён Dustin Gamester
ответ дан Dustin Gamester
Это тоже хорошо работает:
taskkill /IM "w3wp.exe" /F /FI "STATUS eq RUNNING"ответ дан Richard Casavecchia
Или это просто вернет информационное сообщение, если не найдено:
taskkill /f /im w3wp.exe /fi "memusage gt 2"Информация от: здесь
Это однострочное решение.
Он запустит taskkill, только если процесс действительно запущен, иначе он просто сообщит, что он не запущен.
tasklist | find /i "w3wp.exe" && taskkill /im w3wp.exe /F || echo process "w3wp.exe" not running.Это результат, если процесс запущен:
w3wp.exe 1960 Services 0 112,260 K
SUCCESS: The process "w3wp.exe" with PID 1960 has been terminated.Это вывод в случае, если не работает:
process "w3wp.exe" not running.Принудительно завершает процесс (если процесс запущен) и не выводит никакой информации.
Следующая команда работает нормально.
taskkill /f /im w3wp.exe /t /fi "status eq running">nul
How to Kill process using cmd or VBScript
There might be multiple occasions when you want to kill an existing instance of a process through code.
On this page we have compiled a list of functions which can help you kill process programmatically with the help of VBScript or UFT in built methods or by using cmd window, SystemUtil(Inbuilt object in UFT/QTP), using GetObject.
For our example we have taken the process to be killed as “Excel.exe”. You can replace any of your process name in the below code snippets such as chrome.exe, msedge.exe etc.
Kill process using vbscript- Excel. exe complete example
Kill process using TASKKILL in cmd window
You can kill Excel by running a simple command in command window.
TASKKILL /F /IM EXCEL.EXE
This command can be run through vbscript like below.
Kill process using SystemUtil
SystemUtil is an inbuilt object in UFT/QTP which can interact with the underlying system. This provides a method called CloseProcessByName which kills a process by it’s name. See below how to kill excel using SystemUtil in UFT.
Find process and Kill the process
VBScript has an object to interact with the OS called Shell object. You can filter out the running process and find if Excel.exe is running in the list of processes and then kill it. See below code snippet to under stand how to find a process using shell in VBScript.
Kill the process using GetObject in VBScript
VBScript has method GetObject which can fetch an existing instance of process. We can use this to get the instance of running Excel and then kill it by calling Quit method. See below code snippet to understand how to kill excel using GetObject in VBScript.
Database connection to Excel
Related pages
Checkout the code repo
TASKKILL
Формат командной строки:
Описание параметров командной строки :
/P пароль – Пароль для этого пользовательского контекста. Запрашивается, если он не задан.
/FI фильтр – Применение фильтра для выбора набора задач. Разрешение использовать “*”. Пример, imagename eq acme*
/PID процесс – Идентификатор процесса, который требуется завершить. Используйте TaskList, чтобы получить PID.
/IM образ – Имя образа процесса, который требуется завершить. Знак подстановки “*” может быть использован для указания всех заданий или имен образов.
/T – Завершение указанного процесса и всех его дочерних процессов.
/F – Принудительное завершение процесса.
/? – Вывод справки по использованию.
1) Символ ‘*’ для параметра /IM применим только совместно с фильтрами.
2) Завершение удаленных процессов всегда будет принудительным (/F).
3) Фильтры “WINDOWTITLE” и “STATUS” не принимаются во внимание, когда компьютер является удаленным.
Примеры использования TASKKILL.
taskkill /? > taskkill.txt – выдать справку по использованию команды в текстовый файл taskill.txt
TASKKILL /IM notepad.exe – завершить процесс, исполняемым образом которого является notepad.exe . Если таких
процессов более одного – то будут завершены все.
taskkill /PID 1234 /T – завершить процесс с идентификатором 1234 и все его дочерние процессы ( /T ) . Одной командой
можно завершить несколько процессов, задавая их PID – taskkill /PID 1234 /PID 2345 /PID 800. Для определения идентификатора
процессов используется команда tasklist :
notepad.exe 824 Console 1 3 916 КБ
notepad.exe 3004 Console 1 18 812 КБ
Где 824 и 3004 – это идентификаторы процессов PID
TASKKILL /F /FI “PID ge 2000” /FI “WINDOWTITLE eq Arc*” – принудительно (/F) завершить процесс, идентификатор которого
больше или равен 2000 и заголовок окна которого , начинается с текста Arc
При завершении процессов как локально, так и удаленно, результат выполнения команды TASKKILL зависит от прав пользователя,
в контексте учетной записи которого выполняется команда.
Для использования в многопользовательской конфигурации системы, например на сервере терминалов, вместо команды TASKKILL, удобнее и безопаснее
использовать команду TSKILL, адаптированную для завершения процессов в среде конкретных пользователей удаленного рабочего стола (RDP).
Весь список команд CMD Windows
I’m trying to kill certain processes through VBA. I have a proprietary object that connects to a market data bus. Through RTD I call this object to pub/sub to the bus. However sometimes the connection drops and I need to kill the process via task manager. Is there a way to kill a process through VBA?
asked Oct 10, 2014 at 15:43

Try with this code
Dim oServ As Object
Dim cProc As Variant
Dim oProc As Object
Set oServ = GetObject("winmgmts:")
Set cProc = oServ.ExecQuery("Select * from Win32_Process")
For Each oProc In cProc 'Rename EXCEL.EXE in the line below with the process that you need to Terminate. 'NOTE: It is 'case sensitive If oProc.Name = "EXCEL.EXE" Then MsgBox "KILL" ' used to display a message for testing pur oProc.Terminate() End If
Nextanswered Oct 10, 2014 at 15:52

Take a look at one more example:
Sub Test() If TaskKill("notepad.exe") = 0 Then MsgBox "Terminated" Else MsgBox "Failed"
End Sub
Function TaskKill(sTaskName) TaskKill = CreateObject("WScript.Shell").Run("taskkill /f /im " & sTaskName, 0, True)
End Functionanswered Sep 7, 2016 at 19:42

4 gold badges45 silver badges96 bronze badges
You can perform it, this way:
Dim oServ As Object
Dim cProc As Variant
Dim oProc As Object
Set oServ = GetObject("winmgmts:")
Set cProc = oServ.ExecQuery("Select * from Win32_Process")
For Each oProc In cProc 'Rename EXCEL.EXE in the line below with the process that you need to Terminate. 'NOTE: It is 'case sensitive If oProc.Name = "EXCEL.EXE" Then MsgBox "KILL" ' used to display a message for testing pur oProc.Terminate 'kill exe End If
Next11 gold badges24 silver badges44 bronze badges
answered Dec 10, 2018 at 9:04
Sub Kill_Excel()
Dim sKillExcel As String
sKillExcel = "TASKKILL /F /IM Excel.exe"
Shell sKillExcel, vbHide
End Sub
30 gold badges95 silver badges140 bronze badges
answered Feb 7, 2019 at 9:00

Possible Duplicate:
How to properly clean up Excel interop objects in C#
Suppose a ASP.NET web application generates automated Excel Reports on the server. How do we kill a server-side Excel.EXE once the processing is over. I am raising this purposely, because I believe that the Garbage Collecter does not clean the Excel executable even after the Excel file is closed.
Any pointers would be helpful?
asked Sep 9, 2008 at 9:31
That’s if I’ve understood correctly! 🙂
EDIT: Even though I’ve been marked down for this, I will never ever advocate running Office on the server – it has proven way too much of a pain in the ass for me in the past.
Having said that, the same now goes for me and Crystal Reports 😉
answered Sep 9, 2008 at 9:36
16 gold badges111 silver badges158 bronze badges
I agree with not running Office on a server. Not that I have any choice in the matter 🙂
One thing to keep in mind with the taskkill option, is that unless you specifically plan for it (aka – singleton), you may have multiple copies of Excel (or any other Office app) running, and unintentionally close the wrong instance.
Also note that per http://support.microsoft.com/kb/257757
Microsoft does not currently
recommend, and does not support,
Automation of Microsoft Office
applications from any unattended,
non-interactive client application or
component (including ASP, ASP.NET,
DCOM, and NT Services), because Office
may exhibit unstable behavior and/or
deadlock when Office is run in this
environment.
As an alternative, there is a product called Aspose Cells that offers a product that is designed to allow you to programmatically work with an Excel sheet in a server environment. As a disclaimer, I have never personally used this product, but I have heard about it from several people I worked with in the past.
answered Sep 9, 2008 at 12:37
Jason Z
15 gold badges49 silver badges62 bronze badges
I’ve had more time to think about this answer, and would now recommend using an XML approach with the Open XML Office spreadsheet format.
Heres some good links to get started on building a office document with code.
http://msdn.microsoft.com/en-us/magazine/cc163478.aspx
http://msdn.microsoft.com/en-us/library/bb735940(office.12).aspx
Just use SSIS on SQL Server. It provides the ability to export to Excel.
Don’t run office on the server. Alteranatively waste money on aspose or spreadsheetgear.
private void killExcel() { xlApp.Quit(); Marshal.ReleaseCOMObject(xlApp); if(xlApp != null) { xlApp = null; } GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }get your Excel operational class to implement IDisposable, and then stick killExcel() in the Dispose method.
UPDATE: Also note that sometimes dev will still see Excel.exe running in task manager. Before assuming the above code isn’t working, check that the process that is running the code is also closed. In the case of a VSTO or COM addin, check that Word/powerpoint/other excel instance is also closed as there is still a GC root back to the launching process. Once that is closed the Excel.exe process will close.
answered Aug 20, 2009 at 23:30
Anonymous Type
2 gold badges26 silver badges45 bronze badges
Are you using VSTO? You can close the Excel app after you finished with excelobject.Quit(); It worked for me, but I don’t use Excel on server-side anymore.
You can have a look on Excel’s XML schema to build the Excel file without Excel itself. Check out CarlosAg Excel Writer, which does exactly the same.
answered Sep 9, 2008 at 9:36
7 gold badges37 silver badges52 bronze badges
I’ve had a similar problem. While ‘taskkill excel.exe’ or enumerating all “excel” processes and killing them does work, this kills ALL running Excel processes. You’re better off killing only the instance you’re currently working with.
Here’s the code I used to accomplish that. It uses a PInvoke (see here) to get the ProcessID from the Excel.Application instance (Me.ExcelInstance in the example below).
Dim ExcelPID As Integer
GetWindowThreadProcessId(New IntPtr(Me.ExcelInstance.Hwnd), ExcelPID)
If ExcelPID > 0 Then Dim ExcelProc As Process = Process.GetProcessById(ExcelPID) If ExcelProc IsNot Nothing Then ExcelProc.Kill()
End If'DO NOT USE THIS METHOD, for demonstration only
For Each p as Process in ExcelProcesses Dim BaseAddr As Integer = p.MainModule.BaseAddress.ToInt32() If BaseAddr = Me.ExcelInstance.Hinstance Then p.Kill() Exit For End If
NextThis is not a reliable way to find the correct process, as the BaseAddress sometimes seems to be the same for several processes (resulting in killing the wrong PID).
answered Nov 23, 2008 at 13:23
:). I jotted down my skirmish with Excel here. It also has some links that I found after some heavy searching. Hope it helps.
Basically Excel is a pain even though it can be automated.
answered Sep 9, 2008 at 9:37
47 gold badges223 silver badges306 bronze badges
I also would not recommend using office apps on a server except for data access to mdb files.
- Create a separate server where that is the only function. (Let’s you reboot with minimum impact).
- Have the server implement a mechanism of queuing requests
- Keep a single thread processing the queue. This gives you the ability to keep track of the office app, kill it if necessary, and continue on without impacting any queued up jobs or other applications.
If you absolutely need to do it on the same server, then at least implement the above in it’s own app pool.
Limiting yourself keeping a queue of work and only one instance of Excel (or any other office app) let’s you kill it with abandon with TaskKill or .Kill() and not lose work.
I believe if you keep it to a single thread then you would rarely have a need to kill it.
answered Sep 9, 2008 at 11:33
2 gold badges25 silver badges36 bronze badges
I have used spreadsheetgear to generate XL reports on the server and it works really well. We don’t have to worry about the EXCEL process..
answered Dec 12, 2008 at 20:19
14 gold badges53 silver badges58 bronze badges
System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < procs.Length; i++)
{ if(procs[i].ProcessName == "EXCEL") { procs[i].Kill(); }
}This worked pretty well, but I would really think about working with Office on a server.
answered Sep 9, 2008 at 11:02
2 gold badges8 silver badges17 bronze badges
I actually had a question that was similar to this awhile back – Check for hung Office process when using Office Automation – some of the responses to that question might be useful for you.
answered Sep 9, 2008 at 12:45
12 gold badges82 silver badges119 bronze badges
You need safely dispose all COM interop objects after you end your work. By “all” I mean absolutely all: collections property values and so on. I’ve created stack object and pushed objects during their setup:
Stack<object> comObjectsToRelease = new Stack<object>();
...
Log("Creating VBProject object.");
VBProject vbProject = workbook.VBProject;
comObjectsToRelease.Push(vbProject);
...
finally
{ if(excel != null) { Log("Quiting Excel."); excel.Quit(); excel = null; } while (comObjectsToRelease.Count > 0) { Log("Releasing {0} COM object.", comObjectsToRelease.GetType().Name); Marshal.FinalReleaseComObject(comObjectsToRelease.Pop()); } Log("Invoking garbage collection."); GC.Collect();
}If Excel is still there you have to kill it manually.
20 gold badges149 silver badges188 bronze badges
answered Sep 9, 2008 at 9:51
Artem Tikhomirov
10 gold badges47 silver badges67 bronze badges
The best approach is to use a purpose built library such as the one from Aspose to generate the spreadsheets or populate templates. The next best approach is to use the xml formats for office if practical for your needs. A lightweight approach that is sometimes suitable is to create an HTML file with one table in it and name it with an .xls extension. Excel will happily read that, but it is very limited in what it can do.
That said, your problem is happening because when you invoke the regular Excel libraries, you’re actually spinning up Excel completely independently of .Net and actually just working with a proxy library to talk to it. This is pretty much the same kind of thing you’d have with WCF and a service. You wouldn’t expect the service to die just because the client application was done using it. Worse, Excel is an unmanaged resource and will not be disposed/ finalized/ garbage collected at all. The .Net Runtime doesn’t know about Excel, it just knows about those proxies. Application.quit is what you need and also you may need to explicitly release the com objects that are created.
answered Oct 14, 2010 at 18:44

Jim L
17 silver badges20 bronze badges
В этой статье показаны действия, с помощью которых можно перезапустить Проводник Windows (explorer.exe).
Проводник Windows — графическая оболочка (приложение), с помощью которой пользователь получает доступ к файлам в операционной системе.
Очень часто после применения различных твиков реестра, чтобы изменения вступили в силу, необходимо перезапустить Проводник Windows. Также в некоторых случаях при “зависании” проводника, его можно просто перезапустить вместо перезагрузки компьютера.
Данный материал носит информационно-познавательный характер, рассматривающий различные способы перезапуска проводника Windows
Как перезапустить Проводник Windows используя «Диспетчер задач»
Это самый простой и распространённый способ перезапуска проводника.
Откройте диспетчер задач, для этого нажмите сочетание клавиш Ctrl + Shift + Esc, далее на вкладке Процессы найдите процесс с именем Проводник, выделите его нажатием левой кнопки мыши и нажмите кнопку Перезапустить.

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

Как перезапустить Проводник Windows в командной строке
Запустите командную строку от имени администратора и выполните следующие команды:
Сначала принудительно завершаем процесс
taskkill /F /IM explorer.exe
Затем запускаем процесс заново

Как перезапустить Проводник Windows с помощью «cmd» или «bat» файла
Если Вам часто приходится перезапускать Проводник Windows, то для этого можно создать командный файл (cmd) или пакетный файл (bat).
Создайте текстовый документ в который скопируйте и вставьте следующий код:

Сохраните файл и измените его расширение с на или

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

For those that are wondering why we don’t just close the window, we’re trying to forcibly close them without leaving any stragglers behind, which seems to happen all too often.
Kill Multiple Processes From the Command Line
taskkill /F /IM <processname.exe> /T
These parameters will forcibly kill any process matching the name of the executable that you specify. For instance, to kill all iexplore.exe processes, we’d use:
taskkill /F /IM iexplore.exe

Create an Icon to Force Kill All iexplore.exe Processes
Since we don’t really want to drop to the command prompt every single time we want to recycle Internet Explorer or Chrome, we can setup an icon to do the work for us.
Right-click anywhere on the desktop and choose New \ Shortcut:

taskkill.exe /F /IM iexplore.exe /T



Now that you’ve learned this technique, you can use it for all sorts of other useful things as well.
How-To Geek is where you turn when you want experts to explain technology. Since we launched in 2006, our articles have been read billions of times. Want to know more?

Для тех, кто задается вопросом, почему мы просто не закрываем окна, мы пытаемся закрыть их принудительно, не оставляя позади ни одного отставшего, что, кажется, случается слишком часто.
Убейте несколько процессов из командной строки
Первое, что вам нужно сделать, это открыть командную строку, а затем использовать команду taskkill со следующим синтаксисом:
taskkill / F / IM <имя процесса.exe> / T
Эти параметры принудительно завершат любой процесс, совпадающий с именем указанного исполняемого файла. Например, чтобы убить все процессы iexplore.exe, мы будем использовать:
taskkill / F / IM iexplore.exe

Создайте значок для принудительного уничтожения всех процессов iexplore.exe
Поскольку на самом деле мы не хотим переходить в командную строку каждый раз, когда мы хотим перезапустить Internet Explorer или Chrome, мы можем настроить значок, который сделает всю работу за нас.
Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите New \ Shortcut:

Вставьте следующее, если вы хотите убить Internet Explorer, иначе вы можете использовать другой исполняемый файл вместо iexplore.exe.
taskkill.exe / F / IM iexplore.exe / T



Теперь, когда вы изучили эту технику, вы можете использовать ее для множества других полезных вещей.
How To Kill All Iexplore. exe Processes At Once
Block Execution Of New Processes Started By IEXPLORE. EXE
https://youtube.com/watch?v=Lt3MJoTYGy8
WHAT HAPPENS WHEN YOU OPEN 30 IEXPLORE. EXE PROCESSES.
Fix Iexplore. exe
Iexplore. exe Sorunu
UiPath Kill Activity | Kill Multiple Processes Same Time Trick
Fix Iexplore. exe Error
https://youtube.com/watch?v=Dty7B2wUQ04




