У меня есть приложение, которое запускает несколько экземпляров самого себя. напримерpowershell v2 - как получить идентификатор процесса
AppName.exe instance1
AppName.exe instance2
AppName.exe instance3
Использование Powershell v2 Я пытаюсь создать простой скрипт, который дал массив AppNames и экземпляров, она перебирает их, проверяет, если они работают, а затем закрывает их.
Я полагал, что лучший способ сделать это - проверить для каждого экземпляра, если он обнаружит его processID и передать его командлету stop-process.
НО, я не могу понять, как получить идентификатор процесса.
До сих пор у меня есть:
$appName = "AppName.exe"
$instance = "instance1"
$filter = "name like '%"+$appName+"%'"
$result = Get-WmiObject win32_process -Filter $filter
foreach($process in $result)
{
$desc = $process.Description
$commArr = $process.CommandLine -split"()"
$inst = $commArr[2]
$procID = "GET PROCESS ID HERE"
if($inst -eq $instance)
{
Stop-Process $procID
}
}
Может кто-нибудь сказать мне, где можно получить идентификатор процесса из пожалуйста?
это должно быть проще: '$ PID = Get-Process имя_приложения | выберите -expand идентификатор' –
Я еще новичок к powershell, но вот почему мне это нравится. 15 строк кода сокращены до 1. Однако при запуске я получаю следующую ошибку: «Невозможно перезаписать переменный PID, потому что он доступен только для чтения или постоянный» – IGGt
О, извините, это встроенное имя переменной, вы можете заменить любым вы хотите, например, '$ processid' –