По умолчанию PowerShell заблокирован, поэтому перед его использованием вам придется включить PowerShell Remoting. Этот процесс настройки немного сложнее, если вы используете рабочую группу вместо домена, например, в домашней сети, но мы проверим вас через нее.
Включите удаленно PowerShell на ПК, на котором вы хотите получить доступ удаленно
Ваш первый шаг - включить PowerShell Remoting на ПК, для которого вы хотите сделать удаленные подключения. На этом ПК вам нужно будет открыть PowerShell с правами администратора.
В Windows 10 нажмите Windows + X, а затем выберите PowerShell (Admin) в меню Power User.
Enable-PSRemoting -Force
-Force
часть командлета сообщает PowerShell выполнить эти действия, не запрашивая вас для каждого шага.
Если ваши ПК являются частью домена, это все, что вам нужно сделать. Вы можете перейти к тестированию своего соединения. Если ваши компьютеры являются частью рабочей группы, которые они, вероятно, находятся в домашней или малой бизнес-сети, у вас есть еще немного работы по настройке.
Примечание. Успех в настройке удаленного доступа в среде домена полностью зависит от настройки вашей сети. Удаление может быть отключено или даже включено автоматически с помощью групповой политики, настроенной администратором. У вас также могут быть разрешения, необходимые для запуска PowerShell в качестве администратора. Как всегда, проконсультируйтесь с администраторами, прежде чем попробовать что-нибудь подобное. У них могут быть веские причины не допускать практики, или они могут пожелать настроить ее для вас.
Настройка рабочей группы
Если ваши компьютеры не находятся в домене, вам нужно выполнить еще несколько шагов, чтобы настроить настройки. Вы должны были включить Remoting на ПК, к которому вы хотите подключиться, как мы описали в предыдущем разделе.
Примечание. Чтобы PowerShell Remoting работал в среде рабочей группы, вы должны настроить свою сеть как частную, а не общедоступную сеть. Подробнее о различиях и о том, как перейти в частную сеть, если у вас уже есть общедоступная сеть, - ознакомьтесь с нашим руководством по приватным и общедоступным сетям.
Затем вам нужно настроить параметр TrustedHosts как на ПК, к которому вы хотите подключитьсяа также ПК (или ПК), с которым вы хотите подключиться, поэтому компьютеры будут доверять друг другу. Вы можете сделать это одним из двух способов.
Если вы находитесь в домашней сети, где хотите продолжить работу, и доверять любому удаленному компьютеру для подключения, вы можете ввести следующий командлет в PowerShell (опять же, вам нужно будет запустить его как Администратор).
Set-Item wsman:localhostclient rustedhosts *
Звездочка является символом подстановки для всех ПК. Если вместо этого вы хотите ограничить компьютеры, которые могут подключаться, вы можете заменить звездочку разделенным запятыми списком IP-адресов или имен компьютеров для утвержденных компьютеров.
После запуска этой команды вам необходимо перезапустить службу WinRM, чтобы ваши новые настройки вступили в силу. Введите следующий командлет и нажмите «Ввод»:
Restart-Service WinRM
Проверить соединение
Теперь, когда у вас установлены компьютеры для PowerShell Remoting, пришло время проверить соединение. На ПК, с которого вы хотите получить доступ к удаленной системе, введите следующий командлет в PowerShell (заменив «КОМПЬЮТЕР» на имя или IP-адрес удаленного ПК), а затем нажмите «Ввод»:
Test-WsMan COMPUTER
Эта простая команда проверяет, запущена ли служба WinRM на удаленном ПК. Если он завершится успешно, вы увидите информацию о службе WinRM удаленного компьютера в окне, что означает, что WinRM включен и ваш компьютер может обмениваться данными. Если команда не удалась, вы увидите сообщение об ошибке.
Выполнение одиночной удаленной команды
Чтобы выполнить команду в удаленной системе, используйте
Invoke-Command
командлет с использованием следующего синтаксиса:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
«КОМПЬЮТЕР» представляет имя или IP-адрес удаленного ПК. «КОМАНДА» - это команда, которую вы хотите запустить. «USERNAME» - это имя пользователя, которое вы хотите запустить как на удаленном компьютере. Вам будет предложено ввести пароль для имени пользователя.
Вот пример. Я хочу просмотреть содержимое каталога C: на удаленном компьютере с IP-адресом 10.0.0.22. Я хочу использовать имя пользователя «wjgle», поэтому я бы использовал следующую команду:
Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C: } -credential wjgle
Запуск удаленного сеанса
Если у вас несколько командлетов, которые вы хотите запустить на удаленном ПК, вместо многократного ввода командлета Invoke-Command и удаленного IP-адреса, вы можете запустить удаленный сеанс. Просто введите следующий командлет и нажмите «Ввод»:
Enter-PSSession -ComputerName COMPUTER -Credential USER
Снова замените «КОМПЬЮТЕР» на имя или IP-адрес удаленного ПК и замените «USER» на имя учетной записи пользователя, которую вы хотите вызвать.