Командування Enter-pssession Дозволяє створювати постійний інтерактивний сеанс PowerShell з віддаленим комп'ютером. Усі команди, які ви вводите у свій командний рядок, виконуються на віддаленому комп’ютері. У цій статті ми розглянемо основні функції та функції використання командира ENTER-PSSESSION для віддаленого управління комп'ютером з Windows 10 та Windows Server 2019/2016.
Командування Enter-pssession базується на стеку PowerShell видалений. PSRemoting заснований на веб-сервісах для управління (WS-менеджмент). WinRM (Windows Remote Management) використовується для спілкування). Трафік між комп’ютерами шифрується на рівні протоколу (ви можете використовувати шифрування SSL). Для аутентифікації ви можете використовувати різні методи, включаючи NTLM та Kerberos.Для підключення в найпростішому випадку потрібно вказати лише ім'я комп'ютера (параметр Ім'я комп'ютерів). Щоб підключитися до віддаленого комп'ютера, просто виконайте команду:
ENTER-PSSESSION HQ-SRV01.Консозо.Com
Якщо поточний користувач має повноваження підключитися до віддаленого сервера, ви підключитесь до віддаленого комп'ютера.
Ви можете запитати облікові записи користувачів перед підключенням:
ENTER-PSSESSION -ComputErname HQ-SRV01.Консозо.Com -credentials contoso \ kbuldogov
Або так:
$ Creds = get-credential
ENTER -PSSESSION -ComputErname HQ -SRV01 -CREDIential $ CREDS
Зверніть увагу, що на початку командного рядка PowerShell назва віддаленого комп'ютера тепер вказується на квадратних дужках ( [HQ-SRV01.Консозо.Com]
). Це дозволяє зрозуміти, чи працюєте ви на місцевому сеансі чи на віддаленому.
Ваша консоль відображає результати всіх команд, зроблених віддалено. Ви можете виконати команду HostName і переконатися, що ви виконали команду на віддаленому комп'ютері.
У цьому інтерактивному командному рядку ви можете виконувати будь -які команди (відповідно до своїх повноважень).
Наприклад, ми відобразимо налаштування мережі:
Get-netipConfiguration
Ви можете змінити налаштування DNS на віддаленому комп'ютері:
Set -dnsclientservaradrass -interfaceindex 6 -serveradradress 192.168.13.4, 192.168.сто.чотири
Щоб завершити інтерактивну сеанс дистанційного керування, вам потрібно виконати команду exit pssession або exit. Лінія ув'язнення ПС прийме звичайний вигляд, і ви повернетесь на місцеву консоль PowerShell:
У Windows Server 2016/2019 PowerShell Remoting знаходиться за замовчуванням (це видно в менеджері сервера -> локальний сервер -> Remote Management = Увімкнена консоль).
У настільних версіях Windows (Win10, Win11) PSRemoting та WinRM Service вимкнено.
Ви можете перевірити, чи працює PSRemoting на поточному комп’ютері:
Get-pssessionConfiguration
Ця команда також дозволяє отримати список користувачів та груп, які дозволяють підключатися через WinRM. Для використання PSRemoting, обліковий запис користувача повинен бути в групі Адміністратори
або Користувачі віддаленого управління
. Основні функції віддаленого використання WinRM без прав адміністратора описані тут.
Ви можете перевірити, чи можете ви підключитися за допомогою PowerShell Reding, що видалить на комп'ютер локально:
Тест -wsman -ComputErname localhost
Якщо команда поверне версію схеми WSMAN, то пульти дистанційного з'єднання до цього комп'ютера за допомогою PS Redinging дозволено.
Якщо видалення PowerShell вимкнено або не налаштовано, з’являється помилка:
Test-wsman: Клієнт не може підключитися до пункту призначення, конкретного у запиті. Переконайтеся, що послуга в пункті призначення працює і приймає ректики. Зверніться до журналів та документації для служби управління WS, що працює в пункті призначення, найчастіше IIS або WinRM. Якщо пункт призначення є службою WinRM, запустіть наступну команду в пункті призначення, щоб проаналізувати та налаштувати службу WinRM: "Winrm QuickConfig".
Щоб увімкнути віддаленість PowerShell, виконайте команду:
Увімкнути -psremoting -force
Ця команда:
- Включає послугу WinRM та налаштовує її для Autostart;
- Створює точку з'єднання на стандартному порту WinRM (TCP/5985 для трафіку HTTP);
- Додає винятки до брандмауера Windows для управління WS (якщо ви налаштували PSRemoting вручну, додайте правило самостійно);
- Дозволяє віддалені сеанси PowerShell;
- Перезапускає winrm.
Переконайтесь, що служба WinRM запускається та налаштована для автоматичного запуску:
Get-Service winrm | Виберіть ім'я машини, ім’я, статус, StartType
Увімкнути -psremoting -skipnetworkprofilecheck -force
У домені Active Directory найпростіше налаштувати Windows Remote Management (PSREMOTING) на серверах та комп'ютерах центрально, використовуючи групову політику.
У нових версіях PowerShell (V6 та V7) використання протоколу захищеної оболонки (SSH) для підключення до віддаленого комп'ютера через видалену PowerShell. Точка SSH повинна бути доступна на віддаленому комп'ютері (тепер у Windows є вбудований сервер SSH)). Ви можете запустити інтерактивний сеанс PSRemoting над SSH за допомогою команди:
Enter-pssession -hostname kbuldogov@hq-srv01.Консозо.Com
Або автентифікація SSH за допомогою ключа RSA:
Enter-pssession -hostname kbuldogov@hq-srv01.Консозо.Com: 22 -keyfilepath c: \ ps \ your_rsa_key
Enter-PSSession може використовуватися спільно з командою New-PSSesse:
$ S = new-pssession -ComputErname HQ-SRV01.Консозо.Com
Введіть -pssession -session $ s
ENTER-PSSESSION підтримує кілька методів аутентифікації. Ви можете встановити правильний метод за допомогою параметра -Аутентифікація
. Підтримується BASIC, DAGEST, KERBEROS, CREDSSP, Переговори.
У наведеному вище прикладі ми показали приклад інтерактивного з'єднання ENTER-PSSESSION між комп'ютерами в одному домені Windows (достатньо, щоб вказати FQDN або коротку назву для підключення, використовується виїзд Kerberos). Якщо ви спробуєте підключитися до віддаленого комп'ютера за IP -адресою або CNAME, аутентифікація не пройде:
ENTER-PSSESSION: Підключення до віддаленого сервера 192.168.13.5 Не вдалося з наступним повідомленням про помилку: Клієнт WinRM не може обробити запит. Аутентифікація за замовчуванням може використовуватися за допомогою IP -адреси за таких умов: транспорт - HTTPS або пункт призначення - у списку довірених хостів та явного довідкового PVVED. Використовуйте WinRM.CMD для налаштування Trustedhosts. Зауважте, що комп’ютери у списку довірених хостів не можуть бути автентифіковані.
Щоб підключитися до віддаленого комп'ютера через IP, ви можете додати цей хост до списку довірених (довірених хостів) або використовувати SSL (безпечніше).
Щоб додати IP -адресу до довіреної, виконайте команду:
Set -Ite WSMAN: \ localhost \ client \ trustedhosts -значення 192.168.13.п’ять
Можна додати до надійних господарів на масці
Встановити -ite WSMAN: \ localhost \ client \ trustedhosts -value *.Winitpro.ru
Принесіть список надійних хостів:
Get-sitem wsman: \ localhost \ client \ trustedhosts
Аналогічно, вам потрібно додати свого хоста до довіреного на віддаленому комп’ютері.
Відновити послугу:
Перезавантаження winrm
Щоб підключитися до віддаленого комп'ютера за IP -адресою, використовуйте таку команду:
ENTER -PSSESSION -ComputErname 192.168.13.5 -crediential (Get -Crediential -username contoso \ kbuldogov)
Команди ENTER-PSSESSION та NEW-PSSESSION створюють постійний тип одного на один і використовуються в основному в інтерактивних сценаріях. Якщо вам потрібна автоматизація, або є завдання, які потрібно негайно виконати на багатьох віддалених комп'ютерах.