Остановить процесс, выполняющийся дольше часа - PullRequest
0 голосов
/ 06 июня 2018

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

Ошибка"Командлет Start-Process в позиции командного конвейера 3 Задайте значения для следующих параметров: FilePath:"

Powershell

# for debugging
$PSDefaultParameterValues['*Process:Verbose'] = $true
$str = Get-Process -Name "Chrome"

if ($str.Status -eq 'stopped') {
    $str | Start-Process
} elseif ($str.StartTime -lt (Get-Date).AddHours(-1)) {
    $str | Stop-Process -PassThru | Start-Process
} else {
    'Chrome is running and StartTime is within the past hour!'
}

# other logic goes here

1 Ответ

0 голосов
/ 06 июня 2018

Ваш $str хранит список всех процессов с именем "Chrome", поэтому я полагаю, что вам нужен один процесс.Вам нужно будет указать идентификатор в Get-Process или использовать $str[0], чтобы выделить конкретный процесс в списке.

Когда вы сохраняете один процесс в $str, если вы пытаетесь распечатать$str.Status, вы увидите, что он ничего не выдаст, потому что Status не является свойством процесса.Процесс либо запущен, либо не существует.Тем не менее, вы можете захотеть, чтобы ваша логика вместо этого проверила, может ли он найти процесс, а затем запустила процесс, если не может, и в этом случае ему нужен путь к исполняемому файлу, чтобы запустить процесс.Дополнительную информацию с примерами можно найти здесь: https://technet.microsoft.com/en-us/library/41a7e43c-9bb3-4dc2-8b0c-f6c32962e72c?f=255&MSPPError=-2147217396

Если вы используете Powershell ISE, попробуйте сохранить процесс в переменной в терминале, затем введите переменную с точкой и Intellisense (если этоon) должен предоставить список всех доступных свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...