Что такое консольное окно


Хост окна консоли что это в Windows 10

Что такое процесс Хост окна консоли? Это безопасно или вирус? Почему он работает на моем ПК с высокой загрузкой процессора, памяти или диска? Хост окна консоли или ConHost.exe одинаковы, но имеют разные имена в разных местах в диспетчере задач. Они поддерживают запуск командной строки. Это официальная служба Microsoft, а не вирус. Давайте поговорим.

Нужен ли Хост окна консоли?

Это действительно важный процесс. Он связан с cmd.exe (командной строкой Windows), crsrss.exe или системной службой времени выполнения ClientServer. Эти процессы взаимозависимы. Это означает, что они поддерживают друг друга в запуске и выполнении всей функции. Это включает в себя поддержку взаимодействия с клавиатурой и мышью, отображение текста внутри стандартного окна приложения Win32. 

Почему запускается несколько экземпляров процесса Хост окна консоли?

Как упоминалось ранее, этот процесс запускается при запуске командной строки. Теперь это включает как активные, так и неактивные окна командной строки. Многие другие программы, такие как Connectify, должны запускать некоторые команды командной строки в фоновом режиме, чтобы работать как задумано. Но когда мы их используем, мы не видим никакого всплывающего окна командной строки, но эти команды выполняются в фоновом режиме. Это требует, чтобы хост окна консоли выполнял команды в фоновом режиме, фактически не прерывая поток задач пользователя. Следовательно, много раз программа запускает несколько фоновых экземпляров командной строки просто для более эффективного выполнения команд. К примеру, вы скачивали программы с торрентов и видели функцию тихой установки, и быстрое мелькание cmd при установке.

Является ли Хост окна консоли вирусом?

Проверить, является ли процесс, выполняемый Хост окна консоли (Console Window Host), вредоносным или нет, очень просто. Когда вы найдете процесс в "диспетчере задач", просто щелкните правой кнопкой мыши на записи и выберите "Открыть местоположение файла". Если он открывает путь C:\Windows\System32 и указывает на файл с именем conhost.exe, то вам не нужно беспокоиться. Если он находится в любой другой папке или в другом месте, то это может быть вредоносное ПО. В этом случае рекомендую выполнить полное сканирование компьютера с помощью Защитника Windows или антивирусного сканера.


Можно еще удостовериться в безопасности процесса открыв его свойства. Щелкните в "Диспетчере задач" по процессу Хост окна консоли правой кнопкой мыши и выберите "Свойства". На вкладке "Подробно" убедитесь, что авторское право принадлежит Microsoft.

Хост окна консоли потребляет много ресурсов

Если этот процесс потребляет у вас много ресурсов, то:

  1. Попробуйте закрыть все окна интерфейса командной строки (cmd.exe).
  2. Проверьте, используют ли какие-либо приложения командную строку для выполнения задач.
  3. Потребление больших ресурсов в течении долгого времени, могут быть признаком вируса.
  4. Загрузитесь в безопасном режиме или выполните загрузку чистой установки Windows 10.
  5. Проверьте поврежденные системные файлы.
  6. Выполните проверку жесткого диска на ошибки.
  7. Проверьте запланированные задачи и посмотрите, выполняются ли какие-либо.
  8. Выполните диагностику ОЗУ.

comments powered by HyperComments

javascript - Что такое window.console && console.log?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Создание консоли - Консоль Windows

  • 3 минуты на чтение

В этой статье

Система создает новую консоль при запуске консольного процесса , символьного процесса, точкой входа которого является основная функция . Например, система создает новую консоль при запуске командного процессора.Когда командный процессор запускает новый процесс консоли, пользователь может указать, создает ли система новую консоль для нового процесса или наследует консоль командного процессора.

Процесс может создать консоль одним из следующих способов:

  • Графический интерфейс или консольный процесс может использовать функцию CreateProcess с CREATE_NEW_CONSOLE для создания консольного процесса с новой консолью. (По умолчанию процесс консоли наследует свою родительскую консоль, и нет гарантии, что ввод будет получен процессом, для которого он был предназначен.)
  • Графический пользовательский интерфейс (GUI) или консольный процесс, который в данный момент не подключен к консоли, может использовать функцию AllocConsole для создания новой консоли. (Процессы GUI не присоединяются к консоли при их создании. Консольные процессы не присоединяются к консоли, если они созданы с использованием CreateProcess с DETACHED_PROCESS .)

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

Процесс также может создать консоль, указав флаг CREATE_NEW_CONSOLE при вызове CreateProcess . Этот метод создает новую консоль, доступную для дочернего процесса, но не для родительского процесса. Отдельные консоли позволяют родительским и дочерним процессам взаимодействовать с пользователем без конфликтов.Если этот флаг не указан при создании консольного процесса, оба процесса присоединяются к одной и той же консоли, и нет гарантии, что правильный процесс получит ввод, предназначенный для него. Приложения могут предотвратить путаницу, создав дочерние процессы, которые не наследуют дескрипторы входного буфера, или разрешив только одному дочернему процессу одновременно наследовать дескриптор входного буфера, при этом не позволяя родительскому процессу читать ввод консоли до завершения дочернего процесса.

Создание новой консоли приводит к появлению нового окна консоли, а также отдельных экранных буферов ввода-вывода.Процесс, связанный с новой консолью, использует функцию GetStdHandle , чтобы получить дескрипторы буферов ввода и экрана новой консоли. Эти дескрипторы позволяют процессу получить доступ к консоли.

Когда процесс использует CreateProcess , он может указать структуру STARTUPINFO , члены которой управляют характеристиками первой новой консоли (если есть), созданной для дочернего процесса. Структура STARTUPINFO , указанная в вызове CreateProcess , влияет на консоль, созданную, если указан флаг CREATE_NEW_CONSOLE .Это также влияет на консоль, созданную, если дочерний процесс впоследствии использует AllocConsole . Можно указать следующие характеристики консоли:

  • Размер нового окна консоли, в символьных ячейках
  • Расположение нового окна консоли в пиксельных координатах экрана
  • Размер экранного буфера новой консоли, в символьных ячейках
  • Атрибуты цвета текста и фона экранного буфера новой консоли
  • Отображаемое имя строки заголовка окна новой консоли

Система использует значения по умолчанию, если значения STARTUPINFO не указаны.Дочерний процесс может использовать функцию GetStartupInfo для определения значений в своей структуре STARTUPINFO .

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

Процесс может использовать функцию FreeConsole для отсоединения от унаследованной консоли или от консоли, созданной AllocConsole .

.

Функции консоли - Консоль Windows

AddConsoleAlias ​​ Определяет псевдоним консоли для указанного исполняемого файла.
Консоль Alloc Назначает новую консоль для вызывающего процесса.
AttachConsole Присоединяет вызывающий процесс к консоли указанного процесса.
ClosePseudoConsole Закрывает псевдоконсоль от данного дескриптора.
CreatePseudoConsole Назначает новую псевдоконсоль для вызывающего процесса.
CreateConsoleScreenBuffer Создает экранный буфер консоли.
FillConsoleOutputAttribute Задает атрибуты цвета текста и фона для указанного числа символьных ячеек.
FillConsoleOutput Символ Записывает символ в экранный буфер консоли указанное количество раз.
FlushConsoleInputBuffer Очищает входной буфер консоли.
FreeConsole Отсоединяет вызывающий процесс от его консоли.
GenerateConsoleCtrlEvent Посылает указанный сигнал группе процессов консоли, которая совместно использует консоль, связанную с вызывающим процессом.
GetConsoleAlias ​​ Извлекает указанный псевдоним для указанного исполняемого файла.
GetConsoleAliases Извлекает все определенные псевдонимы консоли для указанного исполняемого файла.
GetConsoleAliasesLength Возвращает размер в байтах буфера, необходимого для хранения всех псевдонимов консоли для указанного исполняемого файла.
GetConsoleAliasExes Извлекает имена всех исполняемых файлов с определенными псевдонимами консоли.
GetConsoleAliasExesLength Возвращает размер в байтах буфера, необходимого для хранения имен всех исполняемых файлов, для которых определены псевдонимы консоли.
GetConsoleCP Извлекает кодовую страницу ввода, используемую консолью, связанной с вызывающим процессом.
GetConsoleCursorInfo Извлекает информацию о размере и видимости курсора для указанного экранного буфера консоли.
GetConsoleDisplayMode Возвращает режим отображения текущей консоли.
GetConsoleFontSize Извлекает размер шрифта, используемого указанным экранным буфером консоли.
GetConsoleHistoryInfo Извлекает настройки истории для консоли вызывающего процесса.
GetConsoleMode Извлекает текущий режим ввода буфера ввода консоли или текущий режим вывода экранного буфера консоли.
GetConsoleOriginalTitle Извлекает исходный заголовок для текущего окна консоли.
GetConsoleOutputCP Извлекает кодовую страницу вывода, используемую консолью, связанной с вызывающим процессом.
GetConsoleProcessList Извлекает список процессов, подключенных к текущей консоли.
GetConsoleScreenBufferInfo Извлекает информацию об указанном экранном буфере консоли.
GetConsoleScreenBufferInfoEx Извлекает расширенную информацию об указанном экранном буфере консоли.
GetConsoleSelectionInfo Получает информацию о текущем выборе консоли.
GetConsoleTitle Извлекает заголовок текущего окна консоли.
GetConsoleWindow Извлекает дескриптор окна, используемый консолью, связанной с вызывающим процессом.
GetCurrentConsoleFont Получает информацию о текущем шрифте консоли.
GetCurrentConsoleFontEx Получает расширенную информацию о текущем шрифте консоли.
GetLargestConsoleWindowSize Извлекает размер максимально возможного окна консоли.
GetNumberOfConsoleInputEvents Извлекает количество непрочитанных входных записей во входном буфере консоли.
GetNumberOfConsoleMouseButtons Извлекает количество кнопок мыши, используемых текущей консолью.
GetStdHandle Извлекает дескриптор для стандартного ввода, стандартного вывода или стандартного устройства ошибок.
HandlerRoutine Определяемая приложением функция, используемая с функцией SetConsoleCtrlHandler .
PeekConsoleInput Считывает данные из указанного буфера ввода консоли, не удаляя их из буфера.
Консоль чтения Считывает ввод символов из буфера ввода консоли и удаляет его из буфера.
Чтение Вход консоли Считывает данные из входного буфера консоли и удаляет их из буфера.
ReadConsoleOutput Считывает данные атрибутов символа и цвета из прямоугольного блока символьных ячеек в экранном буфере консоли.
ReadConsoleOutputAttribute Копирует указанное количество атрибутов цвета переднего плана и фона из последовательных ячеек экранного буфера консоли.
ЧтениеКонсольВыход Символ Копирует ряд символов из последовательных ячеек экранного буфера консоли.
ResizePseudoConsole Изменяет размер внутренних буферов псевдоконсоли до заданного размера.
ScrollConsoleScreenBuffer Перемещает блок данных в экранный буфер.
SetConsoleActiveScreenBuffer Устанавливает указанный экранный буфер как текущий отображаемый экранный буфер консоли.
SetConsoleCP Задает кодовую страницу ввода, используемую консолью, связанной с вызывающим процессом.
SetConsoleCtrlHandler Добавляет или удаляет определяемую приложением HandlerRoutine из списка функций-обработчиков для вызывающего процесса.
SetConsoleCursorInfo Устанавливает размер и видимость курсора для указанного экранного буфера консоли.
SetConsoleCursorPosition Устанавливает позицию курсора в указанном экранном буфере консоли.
SetConsoleDisplayMode Устанавливает режим отображения указанного экранного буфера консоли.
SetConsoleHistoryInfo Устанавливает настройки истории для консоли вызывающего процесса.
SetConsoleMode Задает режим ввода буфера ввода консоли или режим вывода экранного буфера консоли.
SetConsoleOutputCP Задает кодовую страницу вывода, используемую консолью, связанной с вызывающим процессом.
SetConsoleScreenBufferInfoEx Устанавливает расширенную информацию об указанном экранном буфере консоли.
SetConsoleScreenBufferSize Изменяет размер указанного экранного буфера консоли.
SetConsoleTextAttribute Устанавливает атрибуты цвета переднего плана (текста) и фона для символов, записываемых в экранный буфер консоли.
SetConsoleTitle Устанавливает заголовок для текущего окна консоли.
SetConsoleWindowInfo Устанавливает текущий размер и положение окна буфера экрана консоли.
SetCurrentConsoleFontEx Устанавливает расширенную информацию о текущем шрифте консоли.
SetStdHandle Устанавливает дескриптор для стандартного ввода, стандартного вывода или стандартного устройства ошибок.
Консоль записи Записывает строку символов в экранный буфер консоли, начиная с текущего положения курсора.
Вход консоли записи Записывает данные непосредственно во входной буфер консоли.
WriteConsoleOutput Записывает данные атрибутов символа и цвета в указанный прямоугольный блок символьных ячеек в экранном буфере консоли.
WriteConsoleOutputAttribute Копирует несколько атрибутов цвета переднего плана и фона в последовательные ячейки экранного буфера консоли.
WriteConsoleOutputCharacter Копирует количество символов в последовательные ячейки экранного буфера консоли.
.

Как определить, что запускается в консоли Windows

Rich

Вы когда-нибудь задумывались, что запускается в этом окне консоли, которое на короткое время появляется на вашем экране? В этом гостевом посте Крейг Лёвен, наш замечательный летний стажер, объясняет, как вы можете узнать, какие приложения командной строки работают на вашем компьютере. Передаю вам, Крейг…


[Эта статья включает образцы из блога Натана Гау об использовании SCOM для отслеживания создания подозрительных процессов ]

В какой-то момент во время использования Windows у любого пользователя, вероятно, появилось всплывающее окно консоли открываются на миллисекунду, а затем исчезают, оставляя их в недоумении: «Что это было?».

У меня был точно такой же опыт, который заставил меня исследовать, ответить на этот вопрос и раскрыть способ получения списка каждого процесса, который присоединяется к окну консоли!

В некоторых фоновых случаях окно консоли (работающее как ConHost.exe) открывается и присоединяется к приложению командной строки при выполнении. Когда Windows запускает новый процесс, генерируется событие с ID 4688. Это событие отключено по умолчанию, и его необходимо включить с помощью параметра объекта групповой политики, прежде чем его можно будет отслеживать.

Примечание: Перед тем, как сделать это, подумайте, следует ли включать аудит командной строки. Натан Гау написал об этом сообщение в блоге, в котором подробно рассказал следующее:

«[включение аудита командной строки] вызовет множество событий безопасности. Если у вас есть инструменты, такие как ArcSight, Splunk, OMS или SCOM, собирающие эти события, было бы разумно делать это постепенно, чтобы не перегружать эти инструменты, и я бы добавил, что если у вас нет есть план проверки и ответа на то, что вы обнаружите, тогда вам следует подумать об этом, прежде чем вы начнете включать аудит, на который не будут смотреть.Другая проблема заключается в том, что, включив аудит командной строки, любой, кто может читать события безопасности, может прочитать содержимое и потенциально прочитать что-то конфиденциальное. Так что, пожалуйста, хорошо обдумайте это. Полную статью на TechNet можно найти здесь ».

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

Вот несколько снимков экрана, на которых показано, как включить вход в систему.

1) Сначала откройте редактор групповой политики: нажмите «Пуск», введите «группа» и нажмите «Изменить групповую политику» в результатах поиска.

2) Включить создание процесса аудита:

Перейдите к:

Политика локального компьютера

Конфигурация компьютера

Параметры Windows

Параметры безопасности

Конфигурация политики расширенного аудита

Политики системного аудита

Подробное отслеживание

Двойной щелчок в пункте «Создание процесса аудита» установите флажок «Успех» и нажмите «ОК».

3) Разрешить создание процесса из командной строки

Перейдите к следующим элементам:

Политика локального компьютера

Конфигурация компьютера

Административные шаблоны

Система

Создание процесса аудита

Дважды щелкните команду «Включить» строка в событиях создания процесса », выберите поле« Включено »и нажмите ОК.

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

Давайте найдем и просмотрим эти события создания процесса :

Вы можете просматривать события создания процесса одним из двух способов: с помощью PowerShell или Windows Event Viewer.

В PowerShell

Откройте окно PowerShell с правами администратора , это необходимо для доступа к журналам. Затем просто введите команду:

 Get-WinEvent Security | ? id -eq 4688 | ? {$ _.Свойства [5] .Value -match 'conhost'} | Выберите TimeCreated, @ {Label = "ParentProcess"; Выражение = {$ _. Properties [13] .Value}} | Выберите -First 10 

Число в конце команды (в настоящее время 10) определяет, сколько процессов показать вам, прежде чем PowerShell перестанет их искать.

В средстве просмотра событий Windows

Если вы предпочитаете подход на основе графического интерфейса, этот список также можно просмотреть в средстве просмотра событий Windows. Откройте средство просмотра событий и создайте настраиваемое представление:

Перейдите на вкладку XML и нажмите «Редактировать запрос вручную» и нажмите «ОК» в открывшемся диалоговом окне:

В текстовое поле, вставьте следующий фрагмент XML:

  <Путь запроса = "Безопасность">    

Нажмите OK, дайте своему пользовательскому представлению имя и описание, после чего вы должны увидеть элементы внутри представления событий. Чтобы узнать, какой процесс создал окно консоли, щелкните элемент и посмотрите на «Имя процесса создателя»:

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


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

Рич Тернер

Старший менеджер программ, консоль Windows и командная строка

Следуйте

.

Смотрите также