Как создать рабочую задачу Powershell, чтобы остановить процесс зависшего процесса Firefox?

Я попытался написать код сценария, чтобы остановить зависший процесс Firefox, я хочу, чтобы сценарий периодически останавливал все процессы браузера Firefox.

$trigger = New-JobTrigger -Daily -At 14:20
$options = New-ScheduledJobOption -WakeToRun 
Register-ScheduledJob -Name StopFirefox -ScriptBlock {Stop-Process -Name "Firefox" -Force} -Trigger $trigger -ScheduledJobOption $options 

Но я получаю ответ по расписанию задачи, который 2147942402, что переводится как «Файл не найден» для обоих:

{Stop-Process -Name "Firefox" -Force} и {Get-Process -Name "Firefox" | Stop-Process}


person Mindaugas Vaitkus    schedule 09.04.2018    source источник
comment
Я хотел задать конкретные вопросы, поскольку в PowerShell есть два модуля для автоматизации задач расписания задач. PSScheduledJob предназначен для сценариев Powershell.   -  person Mindaugas Vaitkus    schedule 09.04.2018
comment
Вы уверены, что в это время запущен процесс FireFox   -  person Prasoon Karunan V    schedule 10.04.2018
comment
Да. Я также специально активировал Firefox. Подходит ли вам код, запланированный в расписании задач?   -  person Mindaugas Vaitkus    schedule 10.04.2018


Ответы (1)


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

Если я добавлю -Credential (Get-Credential) в Register-ScheduledJob Cmdlet, тогда вам будет предложено ввести свои учетные данные один раз, и после этого ваш код должен работать нормально и остановить процесс Firefox.

person PatM0    schedule 12.04.2018
comment
Я все еще получаю ошибку с кодом возврата 2147942401. Команда Powershell показывает: [+ CategoryInfo: SeurityError: (:) [], PSSecurityException + FullyQualifiedErrorId: UnauthorizedAccess] Я использую пользователя без пароля для входа в систему, но без настроек. Другие автоматические файлы запускаются независимо от того, вошел ли пользователь в систему или нет. - person Mindaugas Vaitkus; 12.04.2018
comment
Я проверил ваш код с параметром, как я сказал, и он работает на моей Windows 10 1709 (16299.371) и PowerShell версии 5.1.16299.251. Из каких выходных данных вы получите код возврата? Вы запускали его в окне PowerShell с правами администратора? - person PatM0; 12.04.2018
comment
Можете ли вы увидеть настроенное задание в планировщике задач Windows в Microsoft / Windows / PowerShell / ScheduledJobs? - person PatM0; 12.04.2018
comment
Я получаю код возврата из события истории расписания задач. Я не указываю окно Powershell для запуска от имени администратора. Как писать код? Я использовал Start-Process powershell -Verb runAs с файлом .ps1 он работает, как запустить с модулем? Работа настраивается в Windows / Powershell. Я по-прежнему получаю сообщение об ошибке при запуске скрипта «Запуск задачи», сбой 2147942402. - person Mindaugas Vaitkus; 12.04.2018
comment
Попробуйте запустить сеанс PowerShell от имени администратора через контекстное меню PowerShell. exe или ссылку на панели задач. Выберите запуск от имени администратора. Блок сценария вакансии может оставаться таким же, как и в исходном вопросе. И добавьте код, который я написал в своем ответе. - person PatM0; 12.04.2018
comment
Я написал код точно так же. Это все еще не работает, я думаю, что это конфликтная ситуация настроек конфигурации Windows10 с доступом для входа в систему. Я запишу ошибку в данные текстового файла и попытаюсь решить ее на форумах Microsoft. - person Mindaugas Vaitkus; 12.04.2018
comment
Полезная ссылка, как запустить расписание задач, зарегистрирован ли пользователь или нет, - [ссылка] (docs.microsoft.com/en-us/previous-versions/windows/it-pro/ ) - person Mindaugas Vaitkus; 14.04.2018