Как запускать команды PowerShell на удаленных компьютерах

PowerShell Remoting позволяет запускать команды PowerShell или получать доступ к полным сеансам PowerShell в удаленных системах Windows. Это похоже на SSH для доступа к удаленным терминалам в других операционных системах.

PowerShell по умолчанию заблокирован, поэтому вам придется включить PowerShell Remoting перед его использованием. Этот процесс настройки немного сложнее, если вы используете рабочую группу вместо домена – например, в домашней сети – но мы проведем вас через нее.

Включите PowerShell Remoting на ПК, к которому вы хотите получить удаленный доступ

Ваш первый шаг – включить PowerShell Remoting на ПК, к которому вы хотите устанавливать удаленные подключения. На этом ПК вам нужно открыть PowerShell с правами администратора.

В Windows 10 нажмите Windows + X, а затем выберите PowerShell (Admin) в меню «Опытный пользователь».

В Windows 7 или 8 нажмите «Пуск» и введите «powershell». Щелкните правой кнопкой мыши результат и выберите «Запуск от имени администратора».

В окне PowerShell введите следующий командлет (имя PowerShell для команды) и нажмите Enter:

 Enable-PSRemoting -Force 

Эта команда запускает службу WinRM, настраивает ее автоматический запуск в вашей системе и создает правило брандмауэра, разрешающее входящие подключения. Часть командлета -Force указывает PowerShell выполнять эти действия без запроса на каждый шаг.

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

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

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

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

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

Затем вам нужно настроить параметр TrustedHosts как на ПК, к которому вы хотите подключить , так и ПК (или ПК), к которому вы хотите подключиться, чтобы компьютеры доверяли друг другу. Вы можете сделать это одним из двух способов.

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

 Set-Item wsman: \ localhost \ client \ trusthosts * 

Звездочка является символом подстановки для всех компьютеров. Если вместо этого вы хотите ограничить компьютеры, которые могут подключаться, вы можете заменить звездочку на список разделенных запятыми IP-адресов или имен компьютеров для утвержденных компьютеров.

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

 Restart-Service WinRM 

И помните, вам нужно будет запустить эти два командлета на ПК, к которому вы хотите подключиться, а также на любых ПК, к которым вы хотите подключиться.

Проверьте соединение

Теперь, когда ваши компьютеры настроены для PowerShell Remoting, пришло время проверить соединение. На ПК, с которого вы хотите получить доступ к удаленной системе, введите следующий командлет в PowerShell (заменив «КОМПЬЮТЕР» именем или IP-адресом удаленного ПК) и нажмите Enter:

 КОМПЬЮТЕР Test-WsMan 

Эта простая команда проверяет, работает ли служба WinRM на удаленном ПК. Если он завершится успешно, вы увидите в окне информацию о службе WinRM на удаленном компьютере, что означает, что WinRM включен и ваш компьютер может обмениваться данными. Если команда не выполнена, вместо этого вы увидите сообщение об ошибке.

Выполнить одну удаленную команду

Чтобы запустить команду в удаленной системе, используйте командлет Invoke-Command , используя следующий синтаксис:

 Invoke-Command -ComputerName COMPUTER -ScriptBlock {COMMAND} -credential USERNAME 

«КОМПЬЮТЕР» представляет имя или IP-адрес удаленного ПК. «КОМАНДА» – это команда, которую вы хотите выполнить. «ИМЯ ПОЛЬЗОВАТЕЛЯ» – это имя пользователя, для которого вы хотите выполнить команду, как на удаленном компьютере. Вам будет предложено ввести пароль для имени пользователя.

Вот пример. Я хочу просмотреть содержимое каталога C: \ на удаленном компьютере с IP-адресом 10.0.0.22. Я хочу использовать имя пользователя «wjgle», поэтому я бы использовал следующую команду:

 Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock {Get-ChildItem C: \} -credential wjgle 

Начать удаленный сеанс

Если у вас есть несколько командлетов, которые вы хотите запустить на удаленном ПК, вместо того, чтобы многократно вводить командлет Invoke-Command и удаленный IP-адрес, вы можете вместо этого запустить удаленный сеанс. Просто введите следующий командлет и нажмите Enter:

 Enter-PSSession -ComputerName COMPUTER -Credential USER 

Снова замените «КОМПЬЮТЕР» именем или IP-адресом удаленного ПК и замените «ПОЛЬЗОВАТЕЛЬ» именем учетной записи, которую вы хотите вызвать.

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

Оцените статью
TutoryBird.Ru
Добавить комментарий