Освойте удаленные сессии PowerShell: интерактивный и постоянный доступ

Управление удалёнными системами может часто казаться навигацией по лабиринту. Интерактивные сеансы могут стать решением, если вы застряли, пытаясь устранить проблему с сервером. С правильным подходом вы можете легко подключаться к удалённым машинам, взаимодействовать с ними в реальном времени и даже поддерживать соединения для долгосрочной работы.

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

Упростите управление удалёнными системами и сделайте эти утомительные задачи лёгкими!

Открытие интерактивного сеанса

Иногда вам может понадобиться устранить неполадки или взаимодействовать с удалённым компьютером в реальном времени. Например, для диагностики проблемы с конфигурацией или проверки служб. Инструменты удалённого управления часто позволяют подключаться, но переключение между системами может быть неудобным.

Интерактивные сеансы в PowerShell предоставляют решение, позволяя вам бесшовно подключаться к удалённой машине и выполнять команды так, как если бы вы работали в локальной консоли.

Перед началом интерактивного сеанса убедитесь, что на удалённой системе включено и правильно настроено Windows Remote Management (WinRM). Используйте следующую команду, чтобы включить WinRM на удалённой системе: Enable-PSRemoting -Force

Чтобы начать интерактивный сеанс, используйте команду Enter-PSSession:

Enter-PSSession -ComputerName SRV2

Обратите внимание, что приглашение теперь включает имя удалённого компьютера, что указывает на активное соединение.

Подтвердите, что сеанс работает на удалённой машине:

hostname

После завершения ваших задач вы можете выйти из сеанса:

exit

При использовании Enter-PSSession сессия заканчивается, как только вы из нее выходите.

Проверьте сессию с помощью следующего:

Get-PSSession

Сессий не должно быть в списке, так как они больше не существуют.

Создание и управление постоянными сессиями

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

Не беспокойтесь. Постоянные сессии заполняют этот пробел, поддерживая соединение между вашим локальным компьютером и удаленным компьютером, даже когда вы выходите из консоли или перезагружаете систему.

Чтобы объединить неинтерактивные и интерактивные сценарии, создайте постоянную сессию:

$session = New-PSSession -ComputerName SRV2

После создания взаимодействуйте с новой сессией, используя параметр Session:

Enter-PSSession -Session $session

Выйдите из сессии и снова проверьте открытые сессии:

exit
Get-PSSession

Команда New-PSSession сохраняет сессию, которую она создала.

Вы также можете использовать сессию неинтерактивно:

Invoke-Command -Session $session -ScriptBlock {'Yay! I am in the remote computer!'}

Отключение и повторное подключение к сессиям

Текущая работа требует временного отключения от сессии без полного завершения в какой-то момент. Один из примеров – это когда вам нужно перезапустить локальную консоль; отключение сохраняет состояние сессии, позволяя вам повторно подключиться позже.

PowerShell позволяет вам отключиться от удаленной сессии, сохраняя ее активной, и подключиться снова позже.

Чтобы отключиться от сессии:

Disconnect-PSSession -Session $session

Сеанс сейчас отображается Отключенным.

Вы можете повторно подключиться к сеансу даже после перезапуска консоли PowerShell:

Connect-PSSession -ComputerName SRV2

Этот процесс позволяет возобновить задачи в том же сеансе.

Наконец, очистите и удалите все сеансы:

Get-PSSession | Remove-PSSession

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

Заключение

Интерактивные и постоянные сеансы PowerShell предлагают мощные инструменты для удаленного управления системой, обеспечивая гибкость и эффективность.

Будь то отладка в реальном времени, автоматизация команд или сохранение работы после перезапусков, эти техники обеспечивают беспрепятственный контроль над удаленными системами.

Овладейте управлением сеансами и оснаститесь навыками для эффективного выполнения различных административных задач!

Source:
https://adamtheautomator.com/powershell-interactive-sessions/