Изящное закрытие процесса в удаленном сеансе
В настоящее время я работаю над небольшим скриптом PowerShell для сброса профиля пользователя Outlook на удаленной машине.
Прежде чем можно будет выполнить необходимые действия по профилю, я хочу проверить, работает ли Outlook на удаленной машине, и, если это так, остановить его. Я не хочу убивать процесс, чтобы он мог выполнять необходимую очистку и синхронизацию.
Когда я подключаюсь к машине с правами администратора и выполняю следующие команды:
Enter-PSSession $remoteMachine
$outlookProcess = Get-Process outlook
$outlookProcess.CloseMainWindow()
Я только получаю
False
как «Возвращаемое значение»
Убить процесс с помощью:
Stop-Process $outlookProcess
работает.
Процесс, который я пытался закрыть, не был запущен администратором, с которым я соединяюсь, поэтому сначала я, возможно, не могу манипулировать в контексте этого пользователя, но если я делаю то же самое на своем локальном компьютере (Запуск процесса с «обычным» пользователем, а затем с помощью CloseMainWindow () с администратором) он без проблем закрывает процесс.
Итак, мой вопрос: как бы я изящно закрыл этот удаленный процесс?