Powershell настолько крут, что позволяет не только выполнять некоторые команды на удалённых компьютерах, но и полностью подключаться к компьютеру и выполнять команды как-будто на локальном компьютере. По умолчанию такое удовольствие отключено в целях безопасности. Включить и настроить его совсем не сложно, но многие почему-то этого не знают.
Для удалённого управления необходимо два условия: во-первых на обоих компьютерах естественно необходимо чтобы были установлены Powershell, .NET Framework и служба Windows Remote Management (все компоненты начиная с версии 2.0 и выше), а во-вторых, чтобы они были настроены на удалённое управление. Для Windows 7 и выше ничего устанавливать не нужно, всё уже есть, для Windows XP/2003 нужно установить .NET Framework и Powershell (служба Windows Remote Management поставляется в комплекте с Powershell).
После того как всё необходимое установлено нужно настроить, компьютер к которому нужно будет подключаться на разрешение удалённых подключений. Для этого нужно выполнить команду winrm quickconfig или winrm qc . Эта команда выполняет сразу несколько действий:
POWERSHELL — НАСТРОЙКА УДАЛЕННОГО УПРАВЛЕНИЯ
- Запускает службу WinRM
- Изменяет тип запуска службы WinRM на автоматический
- Создаёт прослушивателя для приема запросов с любого IP-адреса
- Изменяет правила брандмауэра для трафика WS-Management (только HTTP)
На этом можно сказать, что компьютер готов для удалённых подключений, однако на практике бывает нужно ещё выполнить команду Enable-PSRemoting .
Всё! Настройка компьютера завершена, и к нему можно подключаться. Теперь пару слов о том, как подключаться. Самый простой способ это использовать командлет Enter-PSSession , после которого указать имя компьютера к которому нужно подключиться, например:
При таком способе подключиться удастся при членстве комьютеров в домене, или если на удалённом компьютере есть пользователь, входящий в группу “Администраторы” с таким же логином и паролем как у текущего пользователя.
Кстати, по умолчанию подключаться к удалённому компьютеру могут только члены группы “Администраторы” (о том как это исправить в другой раз).
А как быть в случае если компьютеры не в домене (или в разных доменах) и логины и пароли администраторов разные?
В этом случае командлет Enter-PSSession нужно использовать с параметром -Credential , который позволяет ввести нужные учётные данные для подключения. Но до того как подключаться к компьютеру его нужно добавить в список доверенных узлов (Trusted Hosts). Это делается командой:
Set-Item WSMan: localhostClientTrustedHosts -value ComputerName
где ComputerName — имя компьютера, к которому будем подключаться. Можно указать как имя компьютера, так и его IP-адрес, однако следует помнить, что то, что ввести здесь, то и нужно будет в последствии использовать для подключения, т.е. если указать IP-адрес, то нельзя будет подключиться к компьютеру, указывая его имя, нужно будет указывать IP-адрес, и наоборот.
Скрипты PowerShell с нуля. Уроки для начинающих
Если нужно подключаться к нескольким компьютерам нужно их всех внести в список доверенных узлов. Но если просто добавить компьютер, он затрёт текущий список. Поэтому, для того, чтобы добавить компьютер в имеющийся список, нужно сначала сохранить текущий список, а затем присвоить значение разделённому запятыми списку, который включает текущий список и новый компьютер:
$curValue = ( Get-Item wsman: localhostClientTrustedHosts ).value
Set-Item wsman: localhostClientTrustedHosts -value «$curValue, newComputer»
Источник: smearg.wordpress.com
Удаленное выполнение сценариев в Windows PowerShell 2.0
У нас есть две машины, одна с предустановленной Windows Server 2008 R2 Enterprise (в режиме Server Core), другая с Windows 7 (x64) Ultimate
Перейдем на машину с Windows Server 2008 R2 и запустим на ней Windows PowerShell выполнив команду powershell
Посмотрим состояние службы WinRM, выполнив команду get-service winrm. Как видим, данная служба выполняется
Перейдем на машину с Windows 7. На данной машине на диске C создана папка Scripts
В папке Scripts был заранее подготовлен сценарий Service_status.ps1
Если открыть файл Service_status.ps1 (например в блокноте), то можно увидеть, что в нем прописаны две команды:
clear — очистка экрана PowerShell
get-service s* | sort-object status — получить список служб, которые начинаются на букву S и отсортировать их по параметру Status
Запускаем на машине с Windows 7 PowerShell
Первым делом нам нужно определить политику выполнения сценариев на удаленной машине с Windows Server 2008 R2
Для этого выполним команду invoke-command -computername Server01 -credential exityrwed/Administrator -ScriptBlock , где Server01 — это имя удаленной машины (в нашем случае это машина с Windows Server 2008 R2), exityrwed — домен, членом которого является машина с Windows Server 2008 R2
Administrator — пользователь, от имени которого будет производится подключение к удаленной машине
— в данных скобках прописываем команду, которую нужно выполнить на удаленной машине. Так как нам нужно определить политику выполнения сценариев PowerShell, в скобках пишем команду get-executionpolicy
Вводим пароль пользователя для подключения к удаленной машине
После выполнения команды invoke-command -computername Server01 -credential exityrwed/Administrator -ScriptBlock видим, что политика выполнения сценариев на машине с Windows Server 2008 R2 имеет статус Unrestricted, то есть разрешено выполнение любых сценариев
Выполним сценарий Service_status.ps1 на удаленной машине с Windows Server 2008 R2, введя команду invoke-command -filepath C:ScriptsService_status.ps1 -computername Server01, где C:ScriptsService_status.ps1 — это путь к файлу сценария Service_status.ps1
Server01- имя удаленной машины, на которой выполняется сценарий
Как видим, сценарий Service_status.ps1 успешно отработал на машине с именем Server01 и отобразил нам список служб начинающихся на букву S
Напишем еще один сценарий, состоящий из одной команды, а именно stop-service sppsvc
Данной командой мы остановим выполняющуюся службу sppsvc на удаленной машине Server01
Выбираем File-Save As
Сценарий сохраним в папке Scripts на диске С: под именем Stop_service_sppsvc
Сохраненный сценарий Stop_service_sppsvc.ps1
Выполним созданный сценарий Stop_service_sppsvc.ps1 на удаленной машине Server01
Для этого вводим команду invoke-command -filepath C:ScriptsStop_service_sppsvc.ps1 -computerName Server01и выполняем её
Сценарий Stop_service_sppsvc.ps1 выполнен успешно, так как никаких ошибок PowerShell нам не выдал
После выполнения сценария Stop_service_sppsvc.ps1 служба sppsvc на удаленной машине Server01 должна быть остановлена.
Проверим состояние службы sppsvc на удаленной машине Server01 выполнив сценарий Service_status.ps1
Выполняем команду invoke-command -filepath C:ScriptsService_status.ps1 -computername Server01
Как видим, служба sppsvc на машине с именем Server01 остановлена
tagsКлючевые слова
Рекомендуем другие статьи по данной теме
Заметили ошибку
Выделите и нажмите Ctrl+Enter
Комментарии (0)
Комментариев пока-что нет Но! Вы можете стать первым. Поделитесь своим впечатлением о статье или задайте свой вопрос!
Рекламный блок
Подпишитесь на рассылку
Навигация
- Windows (все версии)
- Windows 10
- Лицензирование и активация
- Windows 8.1
- Windows 7
- Windows XP
- Установка Windows
- Драйвера
- Обновления Windows
- Восстановление Windows
- Перенос (миграция, клонирование) Windows
- Учётные записи и пароли
- Чистка, оптимизация, твики
- Сборки и дистрибутивы Windows
- Кастомизация
- Функционал Windows
- Безопасность
- Антивирусы
- Восстановление данных
- Резервное копирование
- Шифрование данных
- Загрузочный носитель
- LiveDisk
- Разное
- Другие операционные системы
- Веб-дизайн
Облако тегов
Архив статей
Сейчас обсуждаем
admin
Вентиляция должна быть правильно организована в системном блоке. Выбираем корпус для ПК
serega
Неопытные юзеры считают, что чем больше вентиляторов, тем лучше. Для компьютеров с процессорами
mustang
Не сбрасывается БИОС при замыкании контактом CLR_CMOS отвёрткой. Даже нашёл джампер и замкнул, но
hightbot
Такая и другие похожие ошибки обычно выходят сразу после установки Windows. После установки системы
Добрыня
В своё время закончил универ и нашёл работу на Hh.ru. Как всё было. Выложил резюме на Хантер, через
О проекте RemontCompa.ru
RemontCompa — сайт с огромнейшей базой материалов по работе с компьютером и операционной системой Windows. Наш проект создан в 2010 году, мы стояли у истоков современной истории Windows. У нас на сайте вы найдёте материалы по работе с Windows начиная с XP. Мы держим руку на пульсе событий в эволюции Windows, рассказываем о всех важных моментах в жизни операционной системы.
Мы стабильно выпускаем мануалы по работе с Windows, делимся советами и секретами. Также у нас содержится множество материалов по аппаратной части работы с компьютером. И мы регулярно публикуем материалы о комплектации ПК, чтобы каждый смог сам собрать свой идеальный компьютер.
Наш сайт – прекрасная находка для тех, кто хочет основательно разобраться в компьютере и Windows, повысить свой уровень пользователя до опытного или профи.
Разделы сайта
- Регистрация на сайте
- Новое на сайте
- Статистика
- Пользовательское соглашение
- Об авторе
- Карта сайта
- RSS подписка
- Правила сайта
- Обратная связь
Социальные сети
Источник: remontcompa.ru
Как запускать команды PowerShell на удаленных компьютерах
- Включите удаленно PowerShell на ПК, на котором вы хотите получить доступ удаленно
- Настройка рабочей группы
- Проверить соединение
- Выполнение одиночной удаленной команды
- Запуск удаленного сеанса
Видео: Как запускать команды PowerShell на удаленных компьютерах
2023 Автор: Geoffrey Carr | [email protected] . Последнее изменение: 2023-07-11 09:29
По умолчанию PowerShell заблокирован, поэтому перед его использованием вам придется включить PowerShell Remoting. Этот процесс настройки немного сложнее, если вы используете рабочую группу вместо домена, например, в домашней сети, но мы проверим вас через нее.
Включите удаленно PowerShell на ПК, на котором вы хотите получить доступ удаленно
Ваш первый шаг — включить PowerShell Remoting на ПК, для которого вы хотите сделать удаленные подключения. На этом ПК вам нужно будет открыть PowerShell с правами администратора.
В Windows 10 нажмите Windows + X, а затем выберите PowerShell (Admin) в меню Power User.
часть командлета сообщает PowerShell выполнить эти действия, не запрашивая вас для каждого шага.
Если ваши ПК являются частью домена, это все, что вам нужно сделать. Вы можете перейти к тестированию своего соединения. Если ваши компьютеры являются частью рабочей группы, которые они, вероятно, находятся в домашней или малой бизнес-сети, у вас есть еще немного работы по настройке.
Примечание. Успех в настройке удаленного доступа в среде домена полностью зависит от настройки вашей сети. Удаление может быть отключено или даже включено автоматически с помощью групповой политики, настроенной администратором. У вас также могут быть разрешения, необходимые для запуска PowerShell в качестве администратора.
Как всегда, проконсультируйтесь с администраторами, прежде чем попробовать что-нибудь подобное. У них могут быть веские причины не допускать практики, или они могут пожелать настроить ее для вас.
Настройка рабочей группы
Если ваши компьютеры не находятся в домене, вам нужно выполнить еще несколько шагов, чтобы настроить настройки. Вы должны были включить Remoting на ПК, к которому вы хотите подключиться, как мы описали в предыдущем разделе.
Примечание. Чтобы PowerShell Remoting работал в среде рабочей группы, вы должны настроить свою сеть как частную, а не общедоступную сеть. Подробнее о различиях и о том, как перейти в частную сеть, если у вас уже есть общедоступная сеть, — ознакомьтесь с нашим руководством по приватным и общедоступным сетям.
Затем вам нужно настроить параметр TrustedHosts как на ПК, к которому вы хотите подключитьсяа также ПК (или ПК), с которым вы хотите подключиться, поэтому компьютеры будут доверять друг другу. Вы можете сделать это одним из двух способов.
Если вы находитесь в домашней сети, где хотите продолжить работу, и доверять любому удаленному компьютеру для подключения, вы можете ввести следующий командлет в PowerShell (опять же, вам нужно будет запустить его как Администратор).
Set-Item wsman:localhostclient rustedhosts *
Звездочка является символом подстановки для всех ПК. Если вместо этого вы хотите ограничить компьютеры, которые могут подключаться, вы можете заменить звездочку разделенным запятыми списком IP-адресов или имен компьютеров для утвержденных компьютеров.
После запуска этой команды вам необходимо перезапустить службу WinRM, чтобы ваши новые настройки вступили в силу. Введите следующий командлет и нажмите «Ввод»:
Проверить соединение
Теперь, когда у вас установлены компьютеры для PowerShell Remoting, пришло время проверить соединение. На ПК, с которого вы хотите получить доступ к удаленной системе, введите следующий командлет в PowerShell (заменив «КОМПЬЮТЕР» на имя или IP-адрес удаленного ПК), а затем нажмите «Ввод»:
Эта простая команда проверяет, запущена ли служба WinRM на удаленном ПК. Если он завершится успешно, вы увидите информацию о службе WinRM удаленного компьютера в окне, что означает, что WinRM включен и ваш компьютер может обмениваться данными. Если команда не удалась, вы увидите сообщение об ошибке.
Выполнение одиночной удаленной команды
Чтобы выполнить команду в удаленной системе, используйте
командлет с использованием следующего синтаксиса:
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» на имя учетной записи пользователя, которую вы хотите вызвать.
Популярная тема
Как исправить «Установленный драйвер не проверен для этого компьютера» на компьютерах Intel
Графические драйверы Intel откажутся устанавливать на некоторых компьютерах, даже если они используют графические чипы Intel. Если вы видите это сообщение об ошибке, производитель вашего компьютера хочет, чтобы вы устанавливали драйверы со своего веб-сайта, а не напрямую от Intel. Но есть способ обойти это сообщение и установить драйверы Intel в любом случае.
Как синхронизировать открытые вкладки на разных компьютерах с помощью Google Chrome
Google Cloud Sync будет синхронизировать много вещей, к сожалению, единственное, что он еще не синхронизирует, это ваши открытые вкладки, давайте взглянем на то, как изменить это, используя специальный флаг и мгновенно синхронизируя ваши вкладки на компьютерах.
Почему команды Windows PowerShell вызывают командлеты?
При работе с Windows PowerShell вы могли столкнуться с термином cmdlet и немного смущены. Является ли командлет чем-то совершенно отличным от команды или это просто имя PowerShell для них? Сегодняшний вопрос о Q https://ru.begin-it.com/1982-how-to-run-powershell-commands-on-remote-computers» target=»_blank»]ru.begin-it.com[/mask_link]