Коришћење ПоверСхелл-а преко проки сервера са аутентификацијом

Ако ваша мрежа може приступати интернету само путем проки сервера, нећете моћи да приступите спољним ресурсима из ПоверСхелл сесије: веб странице (Инвоке-ВебРекуест цмдлет), ажурирајте помоћ користећи Упдате-Хелп, повежите се са Оффице365 / Азуре или Преузмите пакет са апликацијом из спољног складишта пакета (користећи ПацкагеМанагемент или НаноСерверПацкаге). У овом чланку ћемо разумети како приступити Интернету из ПоверСхелл сесије преко проки сервера са аутентификацијом.

Покушајмо ажурирати Поверсхелл помоћ:

Ажурирање-помоћ
Или погледајте спољну веб страницу:

Инвоке-ВебРекуест хттп://винитпро.ру

Ако нема директног приступа Интернету, наредба ће вратити грешку следећег типа:

упдате-хелп: Неуспешно ажурирање помоћи за модул (и) 'ДхцпСервер, ДирецтАццессЦлиентЦомпонентс ....' са културама (корисничким сучељима) ен-УС: Није могуће повезивање са садржајем помоћи. Сервер на коме се чува садржај помоћи можда није доступан. Проверите да ли је сервер доступан или причекајте да се сервер врати на мрежу, а затим покушајте поново наредбу.
Инвоке-ВебРекуест: Није могуће повезивање са удаљеним сервером

Чињеница је да је Поверсхелл (тачније .НЕТ класа  Систем.Нето.Вебцлиент, који сви цмдлети користе за приступ спољним ресурсима путем ХТТП / ХТТПС) не користи поставке системског прокија наведене у Интерент Екплорер-у. Међутим, класа ВебЦлиент има својства која вам омогућавају да одредите поставке проки сервера (ВебЦлиент.Проки) и податке о ауторизацији на њему (ВебЦлиент.Цредентиалс или ВебЦлиент.УсеДефаултЦредентиалс). Размотримо како да користимо ове особине класе ВебЦлиент.

Подешавања прокија за ПоверСхелл из ЦМД-а

Проверите тренутна подешавања проки система у сесији Поверсхелл:

нетсх винхттп схов проки

Као што видите, проки поставке нису постављене..

Тренутна подешавања ВинХТТП проки-а: Директан приступ (нема проки сервера).

Можете да увезете поставке проки-а из поставки Интернет Екплорер-а:

нетсх винхттп импорт проки соурце = тј

или их подесите ручно:

нетсх винхттп сет проки "192.168.0.14 ∗ 128"

Ако се морате пријавити на проки сервер, грешке ће се појавити приликом извршавања ПоверСхелл захтева. “(407) Проки Аутентификација Обавезно" На пример, када се покушате повезати са претплатом Азуре помоћу команде:

Адд-АзуреАццоунт -Цредентиал (Гет-Цредентиал)

Схватам грешку:

Адд-АзуреАццоунт: усер_реалм_дисцовери_фаилед: Откривање стварности корисника није успјело: Удаљени сервер вратио је грешку: (407) Потребна је провјера аутентичности прокија.

Провјера идентитета ПоверСхелл Проки-а

Размотрите две методе ауторизације на проки серверу: можете користити ССО аутентификацију или ручно одредити име и корисника за аутентификацију.

Ако сте овлашћени у систему под доменским налогом, а ваш проки подржава Керберос или НТЛМ Ацтиве Дирецтори аутентификацију (ако је још нисте онемогућили), онда можете да користите поверљиве податке тренутног корисника за проверу идентитета на проки серверу (не треба да уносите име / лозинку ):

$ Вцл = нови објект Систем.Нет.ВебЦлиент
$ Вцл.Хеадерс.Адд ("усер-агент", "ПоверСхелл Сцрипт")
$ Вцл.Проки.Цредентиалс =
[Систем.Нет.ЦредентиалЦацхе] :: ДефаултНетворкЦредентиалс

Ако је потребно да ручно потврдите идентитет помоћу проки сервера, покрените следеће команде уносећи корисничко име и лозинку у одговарајући прозор.

$ Вцл = Систем нових система.Нет.ВебЦлиент
$ Цредс = Добивање поверљивости
$ Вцл.Проки.Цредентиалс = $ Цредс

Сада можете да покушате да приступите спољној веб локацији или да ажурирате помоћ командом Упдате-Хелп.

Као што видите, цмдлет Инвоке-Веб Рекуест вратио је податке са странице спољне веб локације!

Подесите проки поставке у ПоверСхелл профилу

Можете да креирате ПоверСхелл профил за аутоматско покретање наредби за увоз проки при покретању ПоверСхелл-а.

Да бисте то учинили, покрените наредбу која ће креирати датотеку профила („Ц: \ Корисници \ корисничко име \ Документи \ ВиндовсПоверСхелл \ Мицрософт.ПоверСхелл_профиле.пс1"):

нотепад $ ПРОФИЛЕ (или нотепад $ ПРОФИЛЕ.АллУсерсЦуррентХост - ако треба да примените ПоверСхелл профил на све кориснике).

Профил ПоверСхелл је скрипта која се покреће када се покрене ПоверСхелл.еке..

Копирајте потребан ПоверСхелл код у бележницу. На пример, користите датотеке (Аутоцонфиг) да бисте конфигурирали поставке прокија на ПАЦ клијенту. Адреса сервера можете да одредите са ПАЦ датотеком и методом аутентификације на проки серверу код тренутног корисника:

[систем.нет.вебрекуест] :: ДефаултВебПроки = систем-нови објект.нет.вебпроки ('хттп://192.168.1.90:80')
# можете заменити претходни ред нетсх винхттп импорт проки соурце = тј. ако желите да увезете поставке прокија из Интернет Екплорера
[систем.нет.вебрекуест] :: ДефаултВебПроки.цредентиалс = [Систем.Нет.ЦредентиалЦацхе] :: ДефаултНетворкЦредентиалс
# може затражити акредитиве корисника
# Систем.Нет.ВебРекуест] :: ДефаултВебПроки.Цредентиалс = Добивање поверљивости
# можете учитати корисничку лозинку из КСМЛ датотеке (погледајте чланак о коришћењу сачуваних лозинки у ПоверСхелл-у):
# Систем.Нет.ВебРекуест] :: ДефаултВебПроки = Увези-Цликмл -Патх ц: \ пц \ пассворд.кмл
[систем.нет.вебрекуест] :: ДефаултВебПроки.БипассПрокиОнЛоцал = $ труе

Политика извршавања скрипта ПоверСхелл Подразумевана политика извршавања ПоверСхелл забрањује покретање свих ПС скрипти, чак и из датотека профила ПоверСхелл. Да бисте дозволили покретање скрипти, мораћете да покренете наредбу:

Сет-ЕкецутионПолици РемотеСигнед

Сачувајте датотеку Мицрософт.ПоверСхелл_профиле.пс1 и поново покрените наредбени редак ПоверСхелл. Проверите да ли можете да приступите ресурсима на Интернету из ПоверСхелл сесије путем прокија без потребе за покретањем додатних команди.

Набавите проки поставке од ПоверСхелл-а

Актуелна подешавања прокија можете добити из регистра помоћу наредбе ПоверСхелл:

Гет-ИтемПроперти -Патх 'ХКЦУ: \ Софтваре \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Интернет Сеттингс' | Селецт-Објецт ПрокиСервер, ПрокиЕнабле

У мом примеру, адреса и порт проки сервера: 192.168.0.14 128

Проки сервер је омогућен: ПрокиЕнабле = 1

Можете добити и подешавања ВебПроки као што је ово:

[Систем.Нет.ВебПроки] :: ГетДефаултПроки ()

Ако је потребно, можете да омогућите (онемогућите) употребу проки са следећим наредбама (респективно):

Сет-ИтемПроперти -Патх 'ХКЦУ: \ Софтваре \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Интернет Сеттингс' ПрокиЕнабле -валуе 1

и

Сет-ИтемПроперти -Патх 'ХКЦУ: \ Софтваре \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Интернет Сеттингс' ПрокиЕнабле -валуе 0

Како променити поставке прокија преко ПоверСхелл-а?

Поставке прокија можете поставити помоћу ПоверСхелл-а. На пример, следећа функција ПоверСхелл омогућава вам промену проки поставки, али прво проверава доступност проки сервера и порта на њему коришћењем цмдлета Тест-НетЦоннецтион

функција Сет-Проки ($ сервер, $ порт)

Иф ((Тест-НетЦоннецтион -ЦомпутерНаме $ сервер -Порт $ порт) .ТцпТестСуццеедед)
Сет-ИтемПроперти -Патх 'ХКЦУ: \ Софтваре \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Интернет Сеттингс' -наме ПрокиСервер -Валуе "$ ($ сервер): $ ($ порт)"
Сет-ИтемПроперти -Патх 'ХКЦУ: \ Софтваре \ Мицрософт \ Виндовс \ ЦуррентВерсион \ Интернет Сеттингс' -име ПрокиЕнабле -Валуе 1

Елсе
Врите-Еррор -Мессаге "Неважеће поставке прокија: $ ($ сервер): $ ($ порт)"

Сет-Проки 192.168.0.14 3128