Содержание
Командлет Invoke-WebRequest в PowerShell — удобный инструмент для отправки HTTP-запросов на веб-сайты. Если вы уже пользуетесь прокси-сервисами Bright Data, вы можете использовать этот командлет с прокси-сервером, указав параметр -Proxy, а затем сведения о прокси-сервере.
4 min read
Ознакомившись с этим руководством по прокси-серверу Invoke-WebRequest PowerShell, вы узнаете:
Давайте узнаем подробности!
Перенос (миграция) виртуальных машин с VMware ESXi на Proxmox


Проблемы с доступом к сетевым хранилищам NAS в Windows 11 24H2

VMware Workstation: блокировка файлов виртуальной машины

Ограничение на количество одновременных сетевых подключений в Windows 10 и 11

Как задать (изменить) принтер по-умолчанию в Windows 10 и 11

Управление переменными окружения Windows в PowerShell


Автоматизация любых действий в браузере с помощью PowerShell и Selenium

Настройка режима киоска в Windows 11

Автоматический перезапуск открытых приложений после перезагрузки Windows

Проверка учетных данных пользователя AD из скрипта PowerShell

Теряется форматирование при копировании в Word

А решение, как оказалось, достаточно простое:
powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;(Invoke-WebRequest -UseBasicParsing -Uri <ULR>).StatusCode;exit [int]$Error[0].Exception.Status"Результат считывается из значение свойства “Status” члена “Exception” в переменной $Error. Это помогает обработать ситуации типа такой
Invoke-WebRequest : Невозможно разрешить удаленное имя: ‘cle.linux.org.tw’
строка:1 знак:77
+ %{[Net.ServicePointManager]::SecurityProtocol = ‘Tls12, Tls11, Tls, Ssl3’} ;Invo …
+ ~
~~~
+ CategoryInfo: InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Status Property System.Net.WebExceptionStatus Status {get;}, которое и даёт ответ, было соединение или нет.
Ну, вот, как‐то так. Почти полный аналог “curl”.
Что такое PowerShell Invoke-WebRequest?
Invoke-WebRequest — это командлет PowerShell для отправки запросов HTTP, HTTPS и FTP веб-серверам и веб-службам. По умолчанию он автоматически анализирует ответ, полученный от сервера, и возвращает подборки форм, ссылок, изображений и других важных элементов HTML.
Обычно он используется для доступа к интерфейсам REST API, загрузки файлов из Интернета или взаимодействия с веб-службами. Ниже приведен базовый синтаксис запроса Invoke-WebRequest:
Invoke-WebRequest [-Uri] <Uri> [-Method <WebRequestMethod>] [-Headers <IDictionary>] [-Body <Object>]Ключевые параметры, которые следует запомнить:
- – Uri: URI веб-ресурса, на который отправлен запрос.
- – Method: HTTP-метод для использования в запросе (например, GET, POST, PUT, DELETE). Invoke-WebRequest по умолчанию отправляет запросы GET.
- – Headers — дополнительные HTTP-заголовки, которые необходимо включить в запрос.
- – Body — тело запроса для отправки на сервер.
Как видите, единственный обязательный аргумент — это
Invoke-WebRequest <Uri>Этот командлет был добавлен в PowerShell 3.0 в 2012 году.
Предварительные требования для начала работы с прокси-сервером в PowerShell
Чтобы начать использовать прокси-сервер PowerShell с Invoke-WebRequest, вам необходимо понять, как выглядит URL-адрес прокси-сервера.
Вот URL-адрес прокси-сервера PowerShell Invoke-WebRequest:
<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]Он включает следующее:
— протокол, используемый для подключения к прокси-серверу. — IP-адрес или URL-адрес имени хоста прокси-сервера. — номер порта, который прослушивает прокси-сервер. — необязательное имя пользователя, которое нужна указать, когда требуется аутентификация на прокси-сервере. — необязательный пароль, который нужно указать, когда требуется аутентификация на прокси-сервере.
Обратите внимание, что часть URL-адреса
Invoke-WebRequest: эта операция не поддерживается для относительного URI.
Что касается протоколов прокси-серверов, то наиболее популярными являются HTTP, HTTPS и SOCKS. В PowerShell 5.1 Invoke-WebRequest поддерживает только HTTP, а в PowerShell 7.x — также HTTPS и SOCKS.
Пора получить действительный прокси-сервер HTTP!
Вы можете найти его бесплатно в Интернете, как показано ниже:
Protocol: HTTP; IP Address: 190.6.23.219; Port: 999Подготовьте эту информацию, чтобы получить следующий URL-адрес прокси-сервера:
http://190.6.23.219:999Предупреждение
Бесплатные прокси-серверы можно использовать для обучения, но вы не можете полагаться на них в реальных ситуациях. Бесплатные прокси-серверы ненадежны, подвержены ошибкам, медленны, существенно ограничивают объем передаваемых данных и недолговечны. Не используйте их!
Каково решение? Прокси-серверы премиум-класса от Bright Data — лучшего поставщика данных услуг на рынке. Подпишитесь и попробуйте наши надежные прокси-серверы бесплатно.
http://admin-4521:@rUuH3tJqf45.103.203.109:9571Давайте начнем изучать уроки Powershell. Сначала мы научимся:
Windows PowerShell — это объектно-ориентированный механизм автоматизации и язык сценариев. Он предназначен в основном для ИТ-специалистов и системных администраторов для контроля и автоматизации администрирования. Windows ОС и другие приложения. Он обеспечивает новые убедительные concepts расширить знания, которые вы получили, и сценарии, которые вы создали в рамках Windows Командная строка и Windows Среды хоста сценариев.
Он сочетает в себе гибкость сценариев, скорость работы с командной строкой и мощь инструмента администрирования на основе графического пользовательского интерфейса. Это позволяет вам эффективно решать проблемы, помогая системному администратору исключить будущий ручной труд. hours. Мы рассмотрим все важные аспекты, которые вам следует знать, чтобы изучить PowerShell.
Зачем использовать Powershell?
Вот некоторые важные причины использования Powershell:
- Powershell предлагает хорошо интегрированный интерфейс командной строки для operaсистема
- PowerShell обеспечивает полный доступ ко всем типам в .NET Framework.
- Доверено системным администраторам.
- PowerShell — это простой способ манипулировать компонентами сервера и рабочей станции.
- Он ориентирован на системных администраторов благодаря более простому синтаксису.
- PowerShell более безопасен, чем работа VBScript или другие языки сценариев
История PowerShell
Первая версия PowerShell 1.0 была выпущена в 2006 году. Сегодня PowerShell имеет версию 7.2. С течением года и версии возможности PowerShell и среды хостинга значительно выросли.
Давайте посмотрим версию wise История Powershell:
- PowerShell версии 1 поддерживал локальное администрирование Windows сервер 2003
- PowerShell 2.0 был интегрирован с Windows 7 и Windows Сервер 2008Р2. Эта версия поддерживает удаленное взаимодействие и расширяет возможности PowerShell, такие как транзакции, фоновые задания, события, отладка и т. д.
- PowerShell 3.0 был выпущен как внутренняя часть Windows рамки управления. Он был установлен на Windows 8 и Windows Server 2012. Вы можете добавлять и планировать задания, подключение сеансов, автоматическую загрузку модулей и т. д.
- PowerShell 4.0 поставлялся с Windows 8.1 и Windows Сервер 2012Р2. В этой версии добавлена поддержка конфигурации желаемого состояния, расширенная отладка, диагностика сети.
- PowerShell 5.0 был выпущен как внутренняя часть Windows платформа управления 5. В этой версии предлагаются такие функции, как удаленная отладка, определения классов, перечисления .NET и т. д.
- Выпущена PowerShell 7.2. Он построен на .NET 6.0. Эта версия предлагает новые operaТоры, упрощенный и динамический просмотр ошибок, автоматические уведомления о новых версиях и т. д.
Далее в этом руководстве по написанию сценариев Powershell мы узнаем о функциях Powershell.
Особенности PowerShell
- Удаленное взаимодействие PowerShell: PowerShell позволяет запускать сценарии и командлеты на удаленном компьютере.
- Фоновые задания: Это поможет вам вызвать скрипт или конвейерsyncхронически. Вы можете запускать свои задания либо на локальном компьютере, либо на нескольких удаленно. operaтед машины.
- Сделки: Включить командлет и позволить разработчикам выполнять
- Вечер: Эта команда помогает вам прослушивать, пересылать и реагировать на события управления и системы.
- Передача файлов по сети: Powershell предлагает встроенную поддержку приоритетных задач.syncхроническая, регулируемая передача файлов между компьютерами с использованием технологии фоновой интеллектуальной службы передачи (BITS).
Как запустить PowerShell
Теперь в этом руководстве по сценариям Powershell мы узнаем, как запустить Powershell на Windows OS.
PowerShell предустановлен во всех последних версиях Windows. Нам нужно запустить PowerShell, для этого нам нужно выполнить следующие шаги:
Шаг 1) Найдите PowerShell в Windows. Выберите и нажмите

Шаг 2) Откроется окно Power Shell

Командлет PowerShell
Командлет, который также называется Command let, — это облегченная команда, используемая в базовой среде PowerShell Windows. PowerShell вызывает эти командлеты в командной строке. Вы можете создавать и вызывать команды командлетов с помощью PowerShell APIS.
Командлет против команды
Командлеты отличаются от команд в других средах командной оболочки, описанных ниже.wing манеры?
- Командлеты . NET Framework объекты класса. Его нельзя выполнить отдельно.
- Командлеты могут состоять всего из дюжины строк кода.
- Синтаксический анализ, форматирование вывода и представление ошибок не обрабатываются командлетами.
- Процесс командлетов работает с объектами. Таким образом, текстовый поток и объекты не могут быть переданы в качестве вывода для конвейерной обработки.
- Командлеты основаны на записях, поэтому они обрабатывают один объект за раз.
Большая часть функций PowerShell исходит из командлета, который всегда имеет формат глагол-существительное, а не множественное число. Более того, командлет возвращает объекты, а не текст. Командлет — это серия команд, состоящая из нескольких строк, хранящихся в текстовом файле с расширением .ps1.
Командлет всегда состоит из глагола и существительного, разделенных дефисом. Некоторые из глаголов, которые помогут вам изучить PowerShell:
- Получить — Чтобы получить что-то
- Начало — Чтобы запустить что-то
- Вне — Выводить что-либо
- Stop — Остановить то, что работает
- Поставьте — Определить что-либо
- Новые — Создать что-то
Фоллоwing представляет собой список важных команд PowerShell:
Получить помощь: Справка по командам и темам PowerShell
Пример. Отображение справочной информации о команде Format-Table.
Get-Help Format-Table

Команда Get: Получить информацию обо всем, что можно вызвать
Пример сценария Powershell: создание списка командлетов и функций, установленных на вашем компьютере.
Get-Command

Получить-Сервис: Находит все командлеты со словом «сервис».
Пример: получить все службы, начинающиеся с «vm».
Get-Service "vm*"

Получить члена: Покажите, что можно сделать с объектом
Пример: получение участников процессов виртуальной машины.
Get-Service "vm*" | Get-Member

- Получить модуль. Показывает пакеты команд.
- Получить содержимое. Этот командлет может взять файл, обработать его содержимое и что-то с ним сделать.
- Get- get Находит все командлеты, начинающиеся со слова get-.
Пример: создать папку
New-Item -Path 'X:\Guru99' -ItemType Directory

Типы данных Powershell

Специальные переменные
| Специальная переменная | Описание |
|---|---|
| $Ошибка | Массив объектов ошибок, отображающих самые последние ошибки. |
| $Хост | Отобразить имя текущего хост-приложения |
| $Профиль | Сохраняет весь путь к профилю пользователя для оболочки по умолчанию. |
| $ PID | Сохраняет идентификатор процесса |
| $PSUICulture | Он содержит название текущей культуры пользовательского интерфейса. |
| $НУЛЬ | Содержит пустое значение или значение NULL. |
| $False | Содержит значение ЛОЖЬ |
| $Истина | Содержит значение ИСТИНА |
Скрипты PowerShell
Скрипты Powershell хранятся в файле .ps1. По умолчанию вы не можете запустить скрипт, просто double- клик по файлу. Это защитит вашу систему от случайного повреждения. Чтобы выполнить скрипт:
Шаг 1: щелкните его правой кнопкой мыши и выберите «Запустить с помощью PowerShell».

Более того, существует политика, ограничивающая выполнение скриптов. Эту политику можно просмотреть, выполнив команду Get-ExecutionPolicy.
Вы получите один из следующихwing вывод:
- ограниченный— Никакие сценарии не допускаются. Это настройка по умолчанию, поэтому она будет отображаться при первом запуске команды.
- AllSigned— Вы можете запускать скрипты, подписанные проверенным разработчиком. С помощью этой настройки скрипт будет запрашивать подтверждение того, что вы хотите его запустить, перед выполнением.
- RemoteSigned— Вы можете запускать свои или скрипты, подписанные проверенным разработчиком.
- Неограниченный— Вы можете запустить любой скрипт, который захотите
Действия по изменению политики выполнения
Шаг 1) Откройте приглашение PowerShell с повышенными правами. Щелкните правой кнопкой мыши PowerShell и выберите «Запуск от имени администратора».

Шаг 2) Войдите в Фолоwing команды
- Get-ExecutionPolicy
- Политика Set-executionpolicy неограничена
- Введите Y в командной строке
- Get-ExecutionPolicy

Первый скрипт PowerShell
В блокноте напишите следующееwing команду
Write-Host "Hello, Guru99!"
Скрипты PowerShell имеют расширение ps1. Сохраните файл как FirstScript.ps1.

В Powershell вызовите скрипт с помощью команды
& "X:\FirstScript.ps1"

Что такое PowerShell ISE?
Команда
Windows Интегрированная среда сценариев PowerShell (ISE) — это редактор по умолчанию для Windows PowerShell. В этой ISE вы можете запускать команды, тестировать запись и отлаживать сценарии в среде графического пользовательского интерфейса на основе окна. Вы можете выполнять многострочное редактирование, раскрашивание синтаксиса, завершение табуляции, выборочное выполнение и многое другое.
Windows PowerShell ISE также позволяет запускать команды на панели консоли. Однако он также поддерживает панели, которые можно использовать для одновременной работы.neoОбычно просматривайте исходный код вашего сценария и других инструментов, которые вы можете подключить к ISE.
Вы даже можете открыть несколько скриптов windows в то же время. Это особенно полезно при отладке сценария, который использует функции, определенные в других сценариях или модулях.

Тот же скрипт, который мы создали в блокноте, можно создать в ISE.
- Вставьте код в редактор
- Сохранить сценарий
- Используйте F5 для запуска скрипта
- Наблюдайте за выводом в консоли

Фоллоwing код даст бесплатный Виртуальная память в твоей машине
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory

PowerShell Concepts
Теперь в этом уроке Powershell для начинающих мы узнаем о важных Powershell. concepts:
| Командлеты | Командлет — это команда сборки, написанная на языках .net, таких как VB или C#. Это позволяет разработчикам расширять набор командлетов, загружая и записывая оснастки PowerShell. |
| функции | Функции — это команды, написанные на языке PowerShell. Его можно разработать без использования других IDE, таких как Visual Studio и разработчики. |
| Заметки к слайдам | Скрипты представляют собой текстовые файлы на диске с расширением .ps1. |
| Приложения | Приложения существуют windows программ. |
| Что если | Приказывает командлету не выполняться, а сообщает вам, что произойдет, если командлет запустится. |
| подтвердить | Укажите командлету, что перед выполнением команды будет выдаваться запрос. |
| Подробный | Обеспечивает более высокий уровень детализации. |
| Отлаживать | Указывает командлету предоставить отладочную информацию. |
| ОшибкаДействие | Указывает командлету выполнить определенное действие при возникновении ошибки. Разрешенные действия продолжать, стоп, молча-продолжать и спрашивать. |
| ОшибкаПеременная | Он указывает переменную, содержащую информацию об ошибке. |
| OutVariable | Сообщает командлету использовать определенную переменную для хранения выходной информации. |
| ВнеBuffer | Указывает командлету хранить определенное количество объектов перед вызовом следующего командлета в конвейере. |
Преимущества использования скрипта PowerShell
- Скрипты PowerShell действительно мощны и могут сделать многое за меньшее количество строк.
- Переменные объявляются в виде $
- Переменные можно использовать для хранения вывода команды, объектов и значений.
- «Тип» переменной указывать не нужно.
PowerShell против. Командная строка
| PowerShell | Командная строка |
|---|---|
| PowerShell глубоко интегрируется с Windows ОПЕРАЦИОННЫЕ СИСТЕМЫ. Он предлагает интерактивный интерфейс командной строки и язык сценариев. | Командная строка — это интерфейс командной строки по умолчанию, предоставляемый Microsoft. Это простое Win32-приложение, которое может взаимодействовать и общаться с любыми Win32-объектами в Windows operaсистема тинг. |
| PowerShell использует так называемые командлеты. Его можно вызвать либо в среде выполнения, либо в сценариях автоматизации. | Никакие такие функции не доступны в командной строке. |
| PowerShell рассматривает их как объекты. Таким образом, выходные данные можно передать в качестве входных данных другим командлетам через конвейер. | В командной строке или даже оболочке *nix выходные данные, генерируемые командлетом, представляют собой не просто поток текста, а набор объектов. |
| PowerShell очень продвинут в плане функций, возможностей и внутреннего функционирования. | Командная строка очень проста. |
Приложения Powershell
Сегодня PowerShell стал идеальным выбором для ИТ-администраторов, поскольку он упрощает управление. operaция и усилия в крупных корпоративных сетях. Например, предположим, что вы управляете большой сетью, содержащей более четырехсот серверов. Теперь вы хотите внедрить новое решение безопасности. Это решение безопасности зависит от определенной службы, которую необходимо запустить на этих серверах.
Однако если вы используете PowerShell, вы сможете выполнить эту задачу всего за несколько минут. Это потому, что весь operaЭто делается с помощью одного сценария, который собирает информацию о службах, работающих на серверах.
Итого
- Windows PowerShell — объектно-ориентированный механизм автоматизации и язык сценариев.
- Powershell предлагает хорошо интегрированный интерфейс командной строки для operaсистема
- Первая версия PowerShell 1.0 была выпущена в 2006 году.
- PowerShell позволяет запускать сценарии и командлеты на удаленном компьютере.
- PowerShell предустановлен во всех последних версиях Windows
- Командлет — это упрощенная команда, используемая в базовой среде PowerShell Windows.
- Get, Start, Out, Stop, Set, New — важные команды PowerShell.
- Boolean, Byte, Chat, Decimal, Decimal, Long — важные типы данных PowerShell.
- $Ошибка. $Host, $Profile, $PID, $PSUICulture, $NULL — это специальные переменные, используемые в PowerShell.
- Команда
Windows PowerShell Integrated Scripting Environment (ISE) — редактор PowerShell по умолчанию. - PowerShell глубоко интегрируется с Windows ОС, тогда как командная строка — это интерфейс командной строки по умолчанию, предоставляемый Microsoft
- PowerShell стал идеальным выбором для ИТ-администраторов, поскольку он упрощает управление. operaция и усилия в крупных корпоративных сетях
Как выполнить сценарий PowerShell
Способ №1
Нажмите правой кнопкой мыши на необходимом сценарии
Выберите пункт «Выполнить с помощью PowerShell» (Run with PowerShell)
Способ №2
Нажмите правой кнопкой мыши на необходимом сценарии
Выберите пункт «Изменить» (Edit)
Дождитесь запуска среды «Windows PowerShell ISE»
Убедитесь, что на панели инструментов «Windows PowerShell ISE» активна зеленая стрелка
Нажмите «F5» или нажмите левой кнопкой мыши на зелёную стрелку.
Способ №3
Нажмите Ctrl+O для открытия сценария, который необходимо выполнить
Найдите место расположения сценария и откройте его двойным щелчком левой кнопки мыши
При выполнении сценария система может сообщить о том, что выполнение сценариев запрещено.
Чтобы снять ограничение на выполнение сценариев PowerShell, выполните нижеуказанную команду в командной части
запущенной среды PowerShell ISE или в среде PowerShell
Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted
PowerShell
Информация в данном разделе актуальна для:
Windows 10: 1607, 1809, 21H2.
Windows 11: 21H2
PowerShell – расширяемое средство автоматизации от Microsoft с открытым исходным кодом.
Входит в состав операционной системы начиная с Windows 10
Windows PowerShell (ISE) – среда для создания, выполнения и тестирования скриптов PowerShell.
Входит в состав в состав операционной системы начиная с Windows 10.
Управление Exchange с помощью PowerShell
Командлеты PowerShell это важный инструмент администрирования и автоматизации on-premises Exchange Server и Exchange Online (Microsoft 365). Для подключения к Exchange Online нужно установить модуль EXO. К Exchange Server можно подключиться удаленно с любого компьютера и импортировать командлеты PowerShell для Exchange в свою сессию.
- Перевод Exchange Server в режим обслуживания, очистка и перемещение логов Exchange
- Настройка ящиков пользователей: включить/отключить переадресацию почты в ящике Exchange, предоставить права доступа к ящику Exchange или календарю, настроить региональные параметры ящика Exchange; создать/удалить правило в ящике пользователя; поиск и удаление писем в ящиках Exchange; разрешить автоподключение ящиков Exchange в Outlook; включить и настроить автоответ в почтовом ящике
- Проверить размер почтового ящика, задать квоты в Exchange Server
- Конвертировать ящик пользователя в общий и наоборот
- Управление группами рассылок (distribution group)
- Как удалить или переименовать почтовую базу в Exchange
- Аудит действий пользователя в ящике Exchange
-
Get-MessageTrackingLog
– анализов журналов доставки писем в Exchange
Использование PowerShell для администрирования Active Directory
Для администрирования леса/домена Active Directory используется модуль RSAT-AD-PowerShell:
Как использовать прокси HTTPS и SOCKS в PowerShell
Если вам требуется использовать прокси-сервер HTTPS или SOCKS, необходимо обновить PowerShell до версии 7.x и выше. В противном случае Invoke-WebRequest завершится ошибкой:
Invoke-WebRequest: ServicePointManager не поддерживает прокси-серверы со схемой https.
Или в случае прокси-сервера SOCKS:
Invoke-WebRequest: ServicePointManager не поддерживает прокси-серверы со схемой socks.
При работе с прокси-серверами HTTPS или SOCKS в PowerShell 7.x структура команд Invoke-WebRequest остается прежней:
Invoke-WebRequest -Proxy "<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]" <Uri>Отличия заключаются в том, что
Если вы попытаетесь вызвать запрос через прокси-сервер, использующий протокол, отличный от указанного выше, вы получите следующую ошибку:
Invoke-WebRequest: Only the 'http', 'https', 'socks4', 'socks4a' and 'socks5' schemes are allowed for proxies.Таким образом, полный пример прокси-запроса Invoke-WebRequest SOCKS выглядит так:
Invoke-WebRequest -Proxy "socks5://94.14.109.54:3567" "http://httpbin.org/ip"
As you can expect, the result will be:
StatusCode : 200
StatusDescription : OK
Content : {
"origin": "94.14.109.54"
}
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Length: 31
Content-Type: application/json
Date: Thu, 01 Feb 2024 12:47:56 GMT...
Forms : {}
Headers : {[Connection, keep-alive], [Access-Control-Allow-Origin, *], [Access-Control-Allow-Credentials,
true], [Content-Length, 31]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 31Администрирование компьютеров Windows 10 и 11 с помощью PowerShell
С помощью PowerShell вы можете конфигурировать различные параметрами в пользовательских операционных системах (Windows 10 и 11):
Работа с файлами в PowerShell
-
Import-CSV
,
Export-CSV
– чтение, экспорт данных в CSV файлы из скриптов PowerShell - Чтение и запись в Excel файл из PowerShell
Установка Invoke-WebRequest
Чтобы использовать Invoke-WebRequest, вам понадобится PowerShell. Итак, давайте узнаем, как установить PowerShell и получить доступ к командлету Invoke-WebRequest!
Windows
Во-первых, вы должны понять, что Windows PowerShell и PowerShell — это две разных программы. Windows PowerShell — это версия PowerShell, поставляемая вместе с Windows, и ее последняя версия — 5.1. Windows PowerShell содержит командлет Invoke-WebRequest. Это означает, что если вы используете современную версию Windows, вы готовы сразу же приступить к делу! При наличии более старых версий следуйте указаниям в официальном руководстве по установке PowerShell.
В то же время некоторые функции Invoke-WebRequest доступны только в версии PowerShell 7.x и более поздних версиях. Дополнительные сведения о том, как установить PowerShell 7.x, приводятся в официальном руководстве по миграции с Windows PowerShell 5.1 на PowerShell 7. Обратите внимание, что PowerShell 7.x устанавливается в новый каталог и работает параллельно с Windows PowerShell 5.1.
Вы можете узнать, какая версия PowerShell установлена на вашем компьютере под управлением ОС Windows, с помощью следующей команды:
$PSVersionTableВ PowerShell 7.x нужно ввести что-то вроде этого:
PSVersion 7.4.1
PSEdition Core
GitCommitId 7.4.1
OS Microsoft Windows 10.0.22631
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0macOS и Linux
PowerShell в администрировании ролей Windows Server
PowerShell – это отличное средство автоматизации настройки и управления платформой Windows Server. Практически все действия, которые вы выполняете с помощью графических оснасток можно сделать с помощью PowerShell. PowerShell значительно упрощает одновременное администрирование десятков и сотен серверов с Windows Server 2022/2019/2016/2012R2.
- Установка и удаление ролей в Windows Server через PowerShell
- Файловый сервер: управление общими сетевыми папками с помощью PowerShell
- Установка, настройка и администрирование роли Remote Desktop Services (RDS): развертывание фермы серверов RDS; настройка шлюза RD Gateway; перенос ролей RDS на другой сервер;
- Включить поддержку Wi-Fi адаптеров в Windows Server
- Установка и настройка службы SNMP в Windows
- Основные команды настройки Windows Server Core из консоли PowerShell
- Администрирование роли Hyper-V требует наличия установленного PowerShell модуля Hyper-V. Он позволяет: установить Windows в виртуальную машину Hyper-V; настроить автозапуск ВМ; клонирование, экспорт и импорт виртуальных машин в Hyper-V
- Использование iSCSI дисков в Windows Server
- Установка и настройка роли DHCP сервера в Windows Server
Как запустить “Windows PowerShell ISE”
С помощью графической оболочки
В строке поиска наберите «ise»
В результатах поиска найдите «Windows PowerShell ISE»
Возможно два варианта запуска, с обычными и повышенными привилегиями
С обычными привилегиями – нажмите на вышеуказанный пункт левой кнопкой мыши
С помощью команды
Введите команду «powershell_ise» без кавычек
Какой прокси-сервер PowerShell следует использовать?
Ответ на этот вопрос меняется в зависимости от того, чего вы хотите достичь с помощью запроса Invoke-WebRequest. Чтобы найти подходящий прокси-сервер PowerShell для ваших нужд, ознакомьтесь с различными типами доступных прокси-серверов:
- Прокси-серверы центров обработки данных: они быстрые и дешевые, но сайты могут легко обнаружить и заблокировать их из-за их идентифицируемых диапазонов IP-адресов.
- Резидентные прокси-серверы: они предлагают ротацию подлинных IP-адресов с реальных устройств в определенных местах. Это означает, что они могут гарантировать высокий уровень анонимности. Резидентные прокси-серверы идеально подходят для доступа к сайтам, использующим географические ограничения, или для обхода мер по борьбе с ботами.
- Прокси-серверы интернет-провайдеров (ISP): они безопасны, быстры и очень надежны, поскольку предоставляют статические IP-адреса устройств, зарегистрированных у интернет-провайдеров. Прокси-серверы ISP также называют резидентными статическими прокси-серверами, и они являются идеальным решением для мониторинга оптимизации поисковых систем (SEO) и исследования рынка.
- Мобильные прокси-серверы: они предоставляют IP-адреса с реальных мобильных устройств для обеспечения высокого уровня анонимности. Они полезны для доступа к приложениям, сайтам или контенту, специально разработанному для мобильных устройств.
Как указать прокси-сервер HTTP в Invoke-WebRequest
Прежде чем начать, запустите следующую команду в PowerShell:
Invoke-WebRequest "https://httpbin.org/ip"
That should print something like:
StatusCode : 200
StatusDescription : OK
Content : {
"origin": "194.34.233.12"
}
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Length: 32
Content-Type: application/json
Date: Thu, 01 Feb 2024 10:46:14 GMT...
Forms : {}
Headers : {[Connection, keep-alive], [Access-Control-Allow-Origin, *], [Access-Control-Allow-Credentials,
true], [Content-Length, 32]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 32Если вы хотите получить доступ только к полю «Контент», вы можете сделать это следующим образом:
$response = Invoke-WebRequest "https://httpbin.org/ip"
$response.Content
This would print:
{
"origin": "194.34.233.12"
}Использование параметра командной строки
Invoke-WebRequest предлагает флаг -Proxy для указания URL-адреса прокси-сервера для запроса.
Итак, синтаксис использования Invoke-WebRequest на прокси-сервере выглядит следующим образом:
Invoke-WebRequest -Proxy "<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]" <Uri>Если теперь вы выполните эту команду PowerShell:
Invoke-WebRequest -Proxy "http://190.6.23.219:999" "https://httpbin.org/ip"
Invoke-WebRequest -Uri "http://httpbin.org/ip" -Proxy "http://brd.superproxy.io:22225" -ProxyCredential (New-Object System.Management.Automation.PSCredential("brd-customer-CUSTOMER_ID-zone-ZONE’S_NAME", ("ZONE’S_PASSWORD" | ConvertTo-SecureString -AsPlainText -Force)))
The result should be:
StatusCode : 200
StatusDescription : OK
Content : {
"origin": "190.6.23.219"
}
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Length: 31
Content-Type: application/json
Date: Thu, 01 Feb 2024 12:36:56 GMT...
Forms : {}
Headers : {[Connection, keep-alive], [Access-Control-Allow-Origin, *], [Access-Control-Allow-Credentials,
true], [Content-Length, 31]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 31Примечание: не забывайте, что бесплатные прокси-серверы недолговечны! К тому времени, когда вы прочитаете это руководство, маловероятно, что вышеуказанный сервер все еще будет работать. В случае ошибки замените его новым прокси-сервером.
Использование переменных окружения
Начиная с версии PowerShell 7.0, Invoke-WebRequest поддерживает конфигурацию прокси-сервера с помощью переменных окружения.
Таким образом, другой способ использования прокси-сервера PowerShell в Invoke-WebRequest заключается в установке следующих двух окружений:
- HTTP_PROXY — это URL-адрес прокси-сервера, используемый для HTTP-запросов;
- HTTPS_PROXY — это URL-адрес прокси-сервера, используемый для HTTPS-запросов.
В Windows можно задать две переменные окружения, используя следующий синтаксис PowerShell:
$env:HTTP_PROXY = "<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
$env:HTTPS_PROXY = "<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"В нашем примере команды будут выглядеть следующим образом:
$env:HTTP_PROXY = "http://190.6.23.219:999"
$env:HTTPS_PROXY = "http://190.6.23.219:999"В macOS и Linux вам необходимо использовать следующий синтаксис:
export HTTP_PROXY="<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
export HTTPS_PROXY="<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"Итак, две команды будут следующими:
export http_proxy="http://190.6.23.219:999"
export https_proxy="http://190.6.23.219:999"Отныне каждый запрос Invoke-WebRequest будет проходить через указанные прокси-серверы без необходимости добавлять опцию -Proxy. После настройки envs запустите следующую команду:
Invoke-WebRequest "https://httpbin.org/ip"
You will get the same result as before:
StatusCode : 200
StatusDescription : OK
Content : {
"origin": "190.6.23.219"
}
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Content-Length: 31
Content-Type: application/json
Date: Thu, 01 Feb 2024 12:36:56 GMT...
Forms : {}
Headers : {[Connection, keep-alive], [Access-Control-Allow-Origin, *], [Access-Control-Allow-Credentials,
true], [Content-Length, 31]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 31Чтобы отключить прокси-серверы Invoke-WebRequest, отключите переменные окружения с помощью:
$env:HTTP_PROXY = ""
$env:HTTPS_PROXY = ""
Or on macOS and Linux:
unset HTTP_PROXY
unset HTTPS_PROXYИспользование PowerShell для администрирования и автоматизации задач
PowerShell – это командная оболочка и полноценный объектно-ориентированный язык сценариев основанный на .NET, который можно использовать для управления компьютерами и созданий скриптов автоматизации различных задач администрирования. Среда PowerShell предустановлена в Windows.
Команды PowerShell (называются командлеты) можно запускать в командной строке
powershell.exe
(
pwsh.exe
для PowerShell Core 6.7, 7.x), или можно использовать встроенный в Windows редактор сценариев PowerShell ISE (с подсветкой кода, справочником команд, средствами отладки). Еще больше возможностей для работы с кодом PoweShell дает бесплатный редактор Visual Studio Code (VSCode). В консоли PowerShell доступна история выполненных ранее команд.
На данный момент есть две ветки PowerShell:
- Windows PowerShell до версии 1 — встроенная в Windows классическая версия PowerShell, основанная на .NET Framework. На данный момент PowerShell 5.1 не развивается Microsoft.
- PowerShell Core x, 7.x — актуальная кроссплатформенная версия PowerShell, основанная на .NET Core. Активно развивается. Эту версию PowerShell нужно устанавливать и обновлять отдельно. Возможна установка на PowerShell Core на Linux.
PowerShell позволяет системным администраторам автоматизировать и управлять различными компонентам дестопных версий Windows, ролями Windows Server, и другими компонентами инфраструктуры Microsoft и сторонними продуктами.

Автоматизация PowerShell в сторонних продуктах
Как узнать общее время работы (uptime) Windows?


Ограничение на количество одновременных сетевых подключений в Windows 10 и 11

Автоматизация любых действий в браузере с помощью PowerShell и Selenium

Настройка режима киоска в Windows 11

Проверка учетных данных пользователя AD из скрипта PowerShell

Как заблокировать программе доступ в Интернет в Windows?

Тест скорости Интернета в Windows из CMD/PowerShell

PowerShell скрипт для проверки совместимости компьютеров с Windows 11

Включаем аудит доступа к папкам и файлам в Windows

Добавление хоста ESXi в VMware vCenter

Копирование (синхронизация) файлов из SharePoint в локальную папку

Создание, удаление, управление точками восстановления в Windows 10 и 11

Как запустить оболочку PowerShell
Для Windows 10 – «Windows PowerShell»
Для Windows 11 – «Windows Terminal»
При необходимости запустить PowerShell с повышенными привилегиями выберите пункт:
Для Windows 10 1607
Способ №1
В строке поиска наберите «power»
В результатах поиска выберите пункт «Windows PowerShell»
Способ №2
Официальная документация
powershell.txt
· Последние изменения: 2023/09/15 15:12 —
vladimir
Как создать сценарий PowerShell
Если вы хотите создать сценарий просто вставив перечень команд из другого источника, можете воспользоваться блокнотом.
Для разработки сценариев луче использовать среду «Windows PowerShell ISE».
С помощью блокнота
Напишите или вставьте в блокнот необходимые команды
Выберите путь сохранения файла
Укажите название файла
Измените расширение файла с «txt» на «ps1»
Нажмите на кнопку «Сохранить» (Save)
Закройте окно блокнота
С помощью “Windows PowerShell ISE”
Напишите или вставьте в «Windows PowerShell ISE» необходимые команды
Выберите путь сохранения файла
Укажите название файла или оставьте имя по умолчанию
Нажмите на кнопку «Сохранить» (Save)
Закройте среду «Windows PowerShell ISE»
Удаленное подключение, получение данных с помощью PowerShell
- Удаленные подключения PowerShell Remoting через SSH
- Управление компьютерами в рабочей группе из PowerShell
- Удаленное подключение PowerShell через HTTPS
- Командлет
Enter-PSSession
– создать интерактивную PowerShell сессию с удаленным компьютером - Получить имя пользователя на удаленном компьютере
- Командлет
Invoke-Command
– запуск команд и скриптов PowerShell на удаленных компьютерах - Проверка открытых/закрытых портов на удаленном хосте с помощью PowerShell
-
Invoke-WebRequest
– получить данные с веб страницы, скачать файл с помощью PowerShell -
Send-MailMessage
– PowerShell командет для отправки писем по протоколу SMTP
Необходимые советы и рекомендации
Ознакомьтесь с полезными уловками и ценными советами по работе с прокси-сервером PowerShell Invoke-WebRequest на профессиональном уровне.
Игнорирование конфигурации прокси-сервера PowerShell
Если вы хотите запретить Invoke-WebRequest использовать настроенный прокси-сервер PowerShell для чтения из переменных окружения, вы можете воспользоваться параметром -NoProxy следующим образом:
Invoke-WebRequest -NoProxy <Uri>
Эта команда предписывает Invoke-WebRequest связаться с
Чтобы убедиться в работоспособности данного подхода, настройте прокси-сервер в envs и запустите его:
Invoke-WebRequest -NoProxy "https://httpbin.org/ip"Avoid SSL Certificate ErrorsПри использовании прокси-сервера HTTP ваши запросы могут не выполняться из-за ошибок SSL-сертификата. Чтобы избежать этого, задайте параметр -SkipCertificateCheck:
Invoke-WebRequest -SkipCertificateCheck -Proxy "<PROTOCOL>://[<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]" <Uri>– SkipCertificateCheck помогает избежать ошибок сертификатов, разрешая небезопасные подключения к серверу. Имейте в виду, что использование этого параметра небезопасно. Задавайте его только при работе с известными хостами.
Например, вы можете связываться с HTTPBin через прокси-сервер, обходя проблемы с SSL, с помощью следующего:
Invoke-WebRequest -SkipCertificateCheck -Proxy "http://190.6.23.219:999" "https://httpbin.org/ip"Заключение
Из этого руководства по прокси-серверу PowerShell вы узнали, что представляет собой инструмент Invoke-WebRequest, как он работает и как его использовать с прокси-сервером HTTP/HTTPS/SOCKS. Как оказалось, нельзя полагаться на прокси-серверы от бесплатных поставщиков. Поэтому единственное решение, которое необходимо принять, — это выбор поставщика услуг прокси-серверов. Экономьте время и энергию и обращайтесь непосредственно к Bright Data — лучшей компании на рынке в этой области.
Bright Data управляет лучшими прокси-серверами в мире, обслуживая компании из списка Fortune 500 и более 20 000 клиентов. Ее всемирная сеть прокси-серверов включает в себя:
В целом, это одна из крупнейших и самых надежных на рынке прокси-сетей, ориентированных на скрейпинг.
Поговорите с одним из наших торговых представителей и узнайте, какие продукты Bright Data лучше всего отвечают вашим потребностям.
Кредитная карта не требуется

