Головна » як » Як запускати команди PowerShell на віддалених комп'ютерах

    Як запускати команди PowerShell на віддалених комп'ютерах

    PowerShell Remoting дозволяє запускати команди PowerShell або отримувати доступ до повних сеансів PowerShell на віддалених системах Windows. Це схоже на SSH для доступу до віддалених терміналів на інших операційних системах.

    За замовчуванням PowerShell заблоковано, тому перед його використанням потрібно ввімкнути функцію PowerShell Remoting. Цей процес налаштування є дещо складнішим, якщо ви використовуєте робочу групу замість домену, наприклад, у домашній мережі, але ми перейдемо вас.

    Увімкніть функцію PowerShell Remoting на ПК, який потрібно отримати віддалено

    Перший крок полягає в тому, щоб увімкнути PowerShell Remoting на ПК, на якому потрібно створити віддалені з'єднання. На цьому комп'ютері потрібно відкрити PowerShell з правами адміністратора.

    У Windows 10 натисніть Windows + X, а потім оберіть PowerShell (Admin) з меню Power User (Енергетичний користувач).

    У Windows 7 або 8 натисніть "Пуск", а потім введіть "powershell". Клацніть правою кнопкою миші результат і виберіть "Запуск від імені адміністратора".

    У вікні PowerShell введіть наступний командлет (назва команди PowerShell для команди) і натисніть Enter:

    Увімкнути-PSRemoting -Force

    Ця команда запускає службу WinRM, встановлює її для автоматичного запуску у вашій системі і створює правило брандмауера, що дозволяє вхідні з'єднання. The -Сила частина cmdlet повідомляє PowerShell про виконання цих дій без запиту на кожен крок.

    Якщо ваш комп'ютер є частиною домену, це все, що вам потрібно зробити. Ви можете пропустити тестування свого підключення. Якщо ваші комп'ютери є частиною робочої групи - вони, ймовірно, знаходяться в домашній мережі або мережі малого бізнесу - у вас є трохи більше роботи з налаштуваннями.

    Примітка: Ваш успіх у налаштуванні віддаленого доступу в середовищі домену повністю залежить від налаштувань вашої мережі. Віддалені функції можуть бути вимкнуті або навіть увімкнуті автоматично за допомогою групової політики, налаштованої адміністратором. Можливо, у вас немає прав, необхідних для запуску PowerShell як адміністратора. Як завжди, зверніться до своїх адміністраторів, перш ніж спробувати щось подібне. Вони можуть мати вагомі причини для того, щоб не дозволити практиці, або вони можуть бути готові встановити її для вас.

    Налаштуйте свою робочу групу

    Якщо ваші комп'ютери не входять до домену, потрібно виконати ще кілька кроків для налаштування. Ви повинні вже увімкнути Remoting на ПК, до якого ви хочете підключитися, як ми описали в попередньому розділі.

    Примітка. Щоб робота PowerShell Remoting працювала в середовищі робочої групи, потрібно налаштувати мережу як приватну, а не загальнодоступну мережу. Щоб дізнатися більше про різницю, а також про те, як змінити приватну мережу, якщо у вас вже є загальнодоступна мережа, налаштуйте та перевірте наш посібник із приватних та публічних мереж.

    Далі потрібно налаштувати параметр TrustedHosts на обох комп'ютерах, до яких потрібно підключитися і ПК (або ПК), з яким потрібно підключитися, щоб комп'ютери довіряли один одному. Ви можете зробити це одним із двох способів.

    Якщо ви перебуваєте в домашній мережі, де ви хочете йти вперед і довіряти будь-якому ПК для віддаленого підключення, у PowerShell введіть наступний командлет (знову ж, потрібно запустити його як адміністратора).

    Локальний клієнт \ t

    Зірочка - це символ підстановки для всіх ПК. Якщо замість цього потрібно обмежити підключення комп'ютерів, можна замінити зірочкою список розділених комами IP-адрес або імен комп'ютерів для затверджених ПК.

    Після запуску цієї команди потрібно перезапустити службу WinRM, щоб нові налаштування вступили в силу. Введіть наступний командлет і натисніть Enter:

    Перезавантаження служби WinRM

    І пам'ятайте, що вам потрібно запустити ці два командлета на ПК, до якого ви хочете підключитися, а також на будь-якому ПК, з якого ви хочете підключитися..

    Перевірте з'єднання

    Тепер, коли ваші комп'ютери налаштовані на віддалення PowerShell, настав час перевірити з'єднання. На комп'ютері, з якого ви хочете отримати доступ до віддаленої системи, введіть наступний командлет у PowerShell (замінивши "COMPUTER" на ім'я або IP-адресу віддаленого ПК), а потім натисніть Enter:

    Комп'ютерний тест-WsMan

    Ця проста команда перевіряє, чи запущена служба WinRM на віддаленому комп'ютері. Якщо він успішно завершиться, ви побачите інформацію про службу WinRM віддаленого комп'ютера у вікні, що означає, що WinRM увімкнено, і ваш комп'ютер може спілкуватися. Якщо команда не вдасться, замість цього з'явиться повідомлення про помилку.

    Виконайте одну команду віддаленого керування

    Щоб запустити команду на віддаленій системі, використовуйте Invoke-Command cmdlet, використовуючи наступний синтаксис:

    Invoke-Command -ComputerName COMPUTER -Комп'ютер-Блок COMMAND -кредендна USERNAME

    "COMPUTER" - це ім'я або IP-адреса віддаленого ПК. "COMMAND" - команда, яку потрібно виконати. "USERNAME" - це ім'я користувача, яке потрібно виконати, як на віддаленому комп'ютері. Вам буде запропоновано ввести пароль для імені користувача.

    Ось приклад. Я хочу переглянути вміст каталогу C: на віддаленому комп'ютері з IP-адресою 10.0.0.22. Я хочу використати ім'я користувача "wjgle", щоб скористатися такою командою:

    Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock Get-ChildItem C: \ t

    Запустіть віддалену сесію

    Якщо у вас є кілька командлетів, які ви хочете запустити на віддаленому комп'ютері, замість того, щоб повторно вводити командлет Invoke-Command і віддалену IP-адресу, замість цього можна запустити віддалений сеанс. Просто введіть наступний командлет і натисніть Enter:

    Enter-PSSession -ComputerName COMPUTER-USER

    Знову ж таки, замінити "COMPUTER" на ім'я або IP-адресу віддаленого ПК і замінити "USER" на ім'я облікового запису користувача, який потрібно викликати.

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