Назад | Перейти на главную страницу

Аутентификация Powershell через VLAN

Проблема

Я хотел бы включить удаленное выполнение сценариев PowerShell для всех хостов рабочих станций в VLAN. Никаких служб Active Directory или Directory нет. Итак, HOST A в подсети 192.168.1.x хотел бы запросить HOST B 192.168.2.x.

Я уже бегал:

Enable-PSRemoting -force

Запрос учетных данных был бы желаемым результатом для любой рабочей станции в VLAN. Станции администратора находятся в подсети 192.168.1.x и попадают в диапазон IP-адресов 192.168.1.10-20.

Вопрос

Можно ли разрешить удаленную аутентификацию PowerShell для хостов в этом диапазоне или любого IP-адреса, поступающего из определенной подсети ?:

192.168.1.0/24

Чтобы уточнить: я настраиваю рабочие станции для развертывания, и я бы хотел, чтобы они были настроены, чтобы позволить мне удаленное отключение PowerShell в полевых условиях. Мои административные станции находятся в одной подсети, а рабочие станции, которые нужно развернуть, - во многих других.

RTFM

Я смотрю на эту ссылку от Microsoft:

http://technet.microsoft.com/en-us/magazine/ff700227.aspx

Это говорит о том, что мне нужно запустить следующее для каждого компьютера администратора:

winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'

Может кто-нибудь подтвердить или опровергнуть это?

Если вы не используете аутентификацию Kerberos / AD, а это не так, вам придется добавить каждую машину в конфигурацию TrustedHosts -ИЛИ- вам нужно будет настроить SSL между каждым узлом. Лучший способ добиться первого - это, конечно, сценарий. Вероятно, сценарий, который использует список имен машин из файла.

Во-вторых, вы можете запустить сеанс PSRemoting с аутентификацией «Negotiate», который предложит вам ввести кредиты, например:

Единственная причина, по которой мне не было предложено ввести кредиты на приведенном выше снимке экрана, заключается в том, что я уже сохранил учетные данные в переменной $ creds. Иначе подскажет.

Я не собираюсь заниматься саморекламой, но я подробно осветил все эти темы в своем блоге здесь (части 1 и 2), и я уверен, что это поможет вам в некоторых из них:

http://www.myotherpcisacloud.com/post/2012/01/26/Monitoring-with-Windows-Remote-Management-(WinRM)-and-Powershell-Part-I.aspx

Причина, по которой вам необходимо добавить хост в список TrustedHosts на компьютере, пытающемся установить соединение, заключается в неотъемлемом отсутствии взаимный аутентификация в среде, отличной от Kerberos или SSL.

(Отредактировано для ясности.)

трудно понять, что именно вы запрашиваете, но если я правильно понимаю, это может помочь. В основном перебираем 192.168.2.0/24, проверяем его, если он отвечает, выполняя отправленную вами команду.

$fourthoctet = 0..255

Foreach ($fo in $fourthoctet)
    {
    $ip = (new-object System.Net.Networkinformation.Ping).Send("192.168.2.$fo") | where-object {$_.Status -eq "success"} | select Address
    If ($ip -ne $null)
        {
        Enable-PSRemoting -force $($ip.address)
        }
    }

* На самом деле работает как подстановочный знак с IP-адресами. Например>

winrm set winrm/config/client @{TrustedHosts="10.1.0.*"}