Удаленное управление с помощью PowerShell

Записки IT специалиста

  • Автор: Уваров А.С.
  • 21.10.2021

Управление VPN-подключениями в последних версиях Windows трудно назвать понятным и удобным. Часть настроек производится через современное приложение Параметры, другая часть, как и прежде, находится в Панели управления. Какие-то шаги к упорядочению этой ситуации сделаны только в Windows 11, но практического опыта работы с ней еще недостаточно. Но есть гораздо более простой и удобный способ управления VPN-соединениями — это PowerShell, его можно использовать как в интерактивном режиме, так и для написания скриптов автоматизации, которые будут производить настройку подключения в один клик.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Тема VPN является номером один для системных администраторов второй год, сложная эпидемиологическая обстановка диктует свои условия и требует обеспечить простой и безопасный способ удаленной работы для пользователей. И если с созданием VPN-сервера особых проблем нет — на выбор большое количество протоколов и технологий, то с клиентскими устройствами все намного сложнее.

Как мы уже говорили выше, самостоятельно создать VPN-подключение, не совершив при этом ошибок, для обычного пользователя будет достаточно сложной задачей, что потребует от администратора либо длительных консультаций в телефонном режиме, либо самостоятельной настройки через удаленное подключение. Да и в повседневной работе ввести одну команду гораздо быстрее и удобнее, нежели прокликивать несколько форм в разных местах.

Для управления VPN-соединениями мы будем использовать PowerShell, данные возможности поддерживаются начиная с Windows 8 и Windows Server 2012.

Управление «один к одному»

Самый простой способ удаленного управления — интерактивно открыть удаленную сессию и в ней выполнить нужные действия. Например, откроем сессию на компьютер SRV4 и рестартуем на нем сервис печати:

Enter-PSSession -ComputerName SRV4
Restart-Service -Name spooler

Посмотрим состояние сервиса и закроем удаленную сессию:

Get-Service -Name spooler
Exit-PSSession

интерактивная сессия в PowerShell

Интерактивная работа подходит для решения несложных задач удаленного администрирования. Если же надо автоматизировать процесс, то лучше воспользоваться командлетом Invoke-Command . Вот так с его помощью можно сделать то же самое действие:

Invoke-Command -ScriptBlock -ComputerName SRV4

Эта команда откроет удаленную сессию на SRV4, выполнит блок команд, указанный в параметре -ScriptBlock , и закроет сессию. А чтобы задание выполнялось в фоновом режиме, дополнительно можно указать параметр -AsJob .

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

Cледует помнить о том, что при работе в фоновом режиме PowerShell не возвращает результат. Для его получения придется воспользоваться командлетом Receive-Job .

выполнение команды на удаленном компьютере в фоновом режиме

Для того, чтобы выполнить не пару-тройку команд, а какой либо скрипт, у Invoke-Command есть параметр –FilePath , который можно использовать вместо –ScriptBlock для определения файла сценария. Для примера я создал скрипт, который выводит список остановленных служб и запустил его на удаленной машине SRV4:

Invoke-Command -FilePath .script.ps1 -ComputerName SRV4

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

Листинг №1 – Запуск процесса используя WMI (VBScript)

Computer = «PC3»
Command = «cmd.exe /c systeminfo.exe > \servershare%computername%.txt»
Set objWMIService = GetObject(«winmgmts:\» & Computer & «rootcimv2:Win32_Process»)
Result = objWMIService.Create(«calc.exe», Null, Null, intProcessID)

Но гораздо проще воспользоваться утилитой командной строки wmic.exe которая предоставляет достаточно удобный интерфейс для работы с WMI и входит в состав операционных систем, начиная с Windows XP. В ней чтобы запустить, например калькулятор на компьютере main достаточно выполнить следующую команду:

wmic /node:main process call create calc.exe

Разумеется, возможности WMI не ограничиваются только запуском процессов. Если вам интересно дальнейшее изучение этой технологии, я рекомендую ознакомиться со статьями Константина Леонтьева, посвященными WMI, ссылки на которые вы можете найти в конце статьи.

Выполнение блока сценария (Scriptblock) на удаленном компьютере

Удаленное взаимодействие с помощью PowerShell позволяет выполнять на удаленном компьютере блок сценария, или scriptblock (то есть блок кода PowerShell, заключенный в фигурные скобки). Для этого нужно воспользоваться командой Invoke-Command с параметром -ComputerName. К примеру, в команде, отображенной на экране 1, я использовал команду Invoke-Command, с тем чтобы выполнить Get-ChildItem на удаленном компьютере. Просматривая экран 1, обратите внимание на то, что для установления соединения с удаленным компьютером перед тем, как запустить блок сценария, я не использовал команду Enter-PSSession. Команды Enter-PSSession и Invoke-Command — это два различных метода удаленного взаимодействия.

Экран 1. Выполнение блока сценария на удаленном компьютере

Первым параметром команды Invoke-Command является параметр -ScriptBlock; он указывает на код, который вы собираетесь выполнить. На экране 1 я опустил имя параметра -ScriptBlock, поскольку указывать его необязательно. Параметр -ComputerName содержит имя удаленного компьютера. Как можно увидеть в выходных данных команды Get-ChildItem, среда PowerShell для удобства оператора даже указывает имя удаленного компьютера в столбце PSComputerName выходных данных.

Язык PowerShell

PowerShell – это объектно-ориентированный скриптовой язык программирования.

Он используется для написания команд управления всеми компонентами операционной системы Windows в оболочке Windows PowerShell, а также для написания сценариев автоматизации задач администрирования в интегрированной среде сценариев Windows PowerShell (ISE). Язык PowerShell хоть и создан для задач администрирования, он является полноценным скриптовым языком программирования, так как имеет программные конструкции, которые присутствуют в каждом языке программирования, такие как: условия, циклы, обработка ошибок, работа с переменными, объектами, массивами.

Язык PowerShell имеет единый синтаксис написания команд и структуру именования этих команд по принципу «Глагол-Существительное», что делает данный язык интуитивно понятным как для программистов, так и для системных администраторов.

Более подробно о программировании на данном языке можете посмотреть в материале — Программирование на языке PowerShell.

Start a Remote Session

If you have several cmdlets you want to run on the remote PC, instead of repeatedly typing the Invoke-Command cmdlet and the remote IP address, you can start a remote session instead. Just type the following cmdlet and then hit Enter:

Again, replace “COMPUTER” with the name or IP address of the remote PC and replace “USER” with the name of the user account you want to invoke.

Your prompt changes to indicate the remote computer to which you’re connected, and you can execute any number of PowerShell cmdlets directly on the remote system.

  • › How to Check if Secure Boot Is Enabled on Your PC
  • › What’s New in Chrome 101, Available Now
  • › Samsung T7 Shield Review: The Best Portable SSD, Now Rugged
  • › What Does “Touch Grass” Mean?
  • › The 5 Most Ridiculously Expensive Phones of All Time
  • › Every Microsoft Windows Logo From 1985 to 2022
  • › 8 Tips to Improve Your Wi-Fi Signal

Profile Photo for Chris Hoffman

Chris Hoffman
Chris Hoffman is Editor-in-Chief of How-To Geek. He’s written about technology for over a decade and was a PCWorld columnist for two years. Chris has written for The New York Times and Reader’s Digest, been interviewed as a technology expert on TV stations like Miami’s NBC 6, and had his work covered by news outlets like the BBC. Since 2011, Chris has written over 2,000 articles that have been read nearly one billion times—and that’s just here at How-To Geek.
Read Full Bio »

Включение удаленного доступа через Параметры

  1. Открываем меню Пуск, и нажимаем на кнопку «Параметры» (иконка в виде шестеренки).
  2. В окне параметров выбираем пункт «Система».
  3. Далее переходим на вкладку «Удаленный рабочий стол».
  4. Здесь нужно переключить единственный переключатель «Включить удаленный рабочий стол» со значения «Откл.» в значение «Вкл.».
  5. Появится окошко, в котором Вас попросят подтвердить, действительно ли вы хотите включить удаленный рабочий стол. Поскольку, именно это и стоит целью данной статьи, то нажать нужно «Подтвердить».
  6. После этого к компьютеру смогут подключаться по удаленному рабочему столу все пользователи, которые входят в группу «Администраторы». Для того, чтобы добавить пользователей, которые смогут подключаться к удаленному рабочему столу, и которые при этом не имеют прав администратора, нужно пролистать окно настроек удаленного рабочего стола в самый низ, и там нажать на надпись «Выберите пользователей, которые могут получить удаленный доступ к этому компьютеру«.

    В открывшемся окне достаточно будет нажать на кнопку «Добавить» и ввести логин или имя пользователя компьютера (для сверки корректности введенных данных можно нажать на кнопку «Проверить имена».

Как и в предыдущих версиях Windows, в десятой версии данной операционной системы, можно управлять доступом к удаленному рабочему столу через свойства системы.

  1. Для использования этого метода нужно открыть Свойства системы — проще всего это сделать, нажав на клавиши Win + R и выполнить там команду SystemPropertiesRemote . После выполнения этой команды откроется окошко Свойств системы с настройками удаленного доступа.
  2. В данном окне нужно отметить пункт «Разрешить удаленные подключения к этому компьютеру», и нажать «Применить». После этого, компьютер будет готов к подключениям по удаленному рабочему столу. Подключаться смогут только пользователи, которые состоят в группе «Администраторы». Для того, чтобы это исправить, необходимо нажать на кнопку «Выбрать пользователей».
  3. Откроется окно, где будет доступна кнопка «Добавить», с помощью которой можно добавить пользователей в список тех, кому доступен доступ к компьютеру через удаленный рабочий стол. Вписывать туда стоит логин или имя пользователя, для проверки корректности ввода воспользовавшись кнопкой «Проверить имена».

Troubleshooting — Устранение неполадок

Больше детально можно почитать на сайте Microsoft:
Синтаксис Enter-PSSession

Проверка состояния на клиенте

# Получаем информацию по Listener (Слушатель)
winrm e winrm/config/listener
# Listener_641507880 это мой ID, добиваем табом.
dir WSMan:localhostListenerListener_

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

Adblock
detector