В базе данных я могу получить список всех запущенных в данный момент процессов и команду sql, которая их запустила.
Я хотел бы сделать аналогичную вещь на коробке окна.
Я могу получить список процессов, но не командную строку, которая их вызвала.
Мой вопрос: учитывая PID в Windows - как найти инструкцию командной строки, которая его выполнила?
Предположения:
- Windows 7 и эквивалентные серверы
windows
windows-command-prompt
pid
Hawkeye
источник
источник
| FL
в конец команды. Это расширяет всю командную строку для меня. Могу также захотеть поиграть| Select -ExpandProperty CommandLine
Вы можете использовать подсистему WMI, используя WMIC.EXE, чтобы получить эту информацию. Предполагая, что PID 600:
Вы также можете найти имя или другую характеристику процесса. Используйте эту команду, чтобы получить список всех атрибутов:
источник
process
псевдонима вместоpath Win32_Process
; например,wmic.exe process get
Другие ответы, безусловно, являются хорошими вариантами, которые будут вам полезны в автоматизированной системе из-за их характера командной строки (и я вижу из тега, что это то, что вы хотели). Конечно, некоторые люди могут захотеть изучить эту информацию с помощью графического интерфейса, так что вот альтернатива в этом направлении.
Process Explorer - это инструмент Sysinternals, поддерживаемый Microsoft. Он может отображать командную строку процесса в диалоговом окне свойств процесса, а также родительский элемент, запустивший его, хотя имя этого процесса может быть недоступно. Вот диалог свойств процесса:
Если вам нужен более подробный контрольный журнал о том, когда был запущен процесс и при каких условиях, вы можете обратиться к другому инструменту Sysinternals, который называется Process Monitor. Здесь вы можете отфильтровать события «Процесс запущен», узнать об окружающей среде, в которой запущен процесс, и посмотреть, какие другие события произошли за это время. Это довольно мощная программа. Вот диалог свойств события:
источник
Command Line
столбец был добавлен, если навести указатель мыши на этот столбец.Чтобы дополнить полезный ответ PowerShell Райана Райса более короткой альтернативой через
-Filter
параметр, который также используетGet-CimInstance
вместо устаревшегоGet-WmiObject
командлета v3 .-Filter
Параметр по существу позволяет передатьWHERE
положение о в WQL заявления вместо того , чтобы передать полный оператор запроса с помощью-Query
.источник