Управление удалёнными системами может часто казаться навигацией по лабиринту. Интерактивные сеансы могут стать решением, если вы застряли, пытаясь устранить проблему с сервером. С правильным подходом вы можете легко подключаться к удалённым машинам, взаимодействовать с ними в реальном времени и даже поддерживать соединения для долгосрочной работы.
В этом руководстве вы узнаете, как раскрыть полный потенциал сеансов 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/