Что означает, что powershell 2.0 будет «дружественным к брандмауэру»? - PullRequest
12 голосов
/ 10 февраля 2009

Меня интересует выполнение сценариев powershell на компьютере за брандмауэром. Какие порты мне нужно будет открыть? Потребуются ли какие-либо специальные настройки, или я просто смогу подключиться к новой установке Windows Server 2008 r2 и начать выполнять свои сценарии?

Ответы [ 4 ]

7 голосов
/ 10 февраля 2009

PowerShell 2 будет выполнять удаленное взаимодействие через WinRM (WinRM уже доступен, начиная с Windows 2003 R2, IIRC). WinRM - это просто SOAP через HTTP [S]. Таким образом, порт равен 80 по умолчанию, 443 для SSL по умолчанию.

Вот краткий обзор PS2 remoting и один на WinRM для 2003 года.

7 голосов
/ 22 февраля 2009

MichaelGG понял все правильно - все, что вам нужно сделать, это использовать встроенное удаленное взаимодействие, доступное в PowerShell V2. Это дает вам сумасшедший уровень контроля над сетью, использующей протокол WS-MAN (это стандартный протокол управления, который реализован нашей службой WINRM).

Способ удаленного взаимодействия V2 заключается в том, что вы можете вызывать команду (отдельную команду, конвейер, набор команд или весь сценарий) на удаленном компьютере (ах) и указывать способ выполнения этой команды.

например. Invoke-Command {get-process} -Computername (cat servers.txt)

Invoke-Command
    (1)-ScriptBlock | -Command <ScriptBlock>
    (0)[-ComputerName | -Cn <String[]>]
       [-ApplicationName <String>]
       [-ArgumentList | -Args <Object[]>]
       [-AsJob ]
       [-Authentication <Basic | Credssp | Default | Digest | Kerberos | Negotiate | NegotiateWithImplicitCredential>]
       [-CertificateThumbprint <String>]
       [-ConfigurationName <String>]
       [-Credential <PSCredential>]
       [-HideComputerName | -HCN ]
       [-InputObject <PSObject> (ByValue)]
       [-JobName <String>]
       [-Port <1->]
       [-SessionOption <System.Management.Automation.Remoting.PSSessionOption>]
       [-ThrottleLimit <Int>]
       [-UseSSL ]

Вы также можете предоставить SessionOptions

New-WSManSessionOption
       [-NoEncryption ]
       [-OperationTimeout <0->]
       [-ProxyAccessType <ProxyAutoDetect | ProxyIEConfig | ProxyNoProxyServer | ProxyWinHttpConfig>]
       [-ProxyAuthentication <Basic | Digest | Negotiate>]
       [-ProxyCredential <PSCredential>]
       [-SkipCACheck ]
       [-SkipCNCheck ]
       [-SkipRevocationCheck ]
       [-SPNPort <0->]
       [-UseUTF16 ]



New-WSManSessionOption
           [-NoEncryption ]
           [-OperationTimeout <0->]
           [-ProxyAccessType <ProxyAutoDetect | ProxyIEConfig | ProxyNoProxyServer | ProxyWinHttpConfig>]
           [-ProxyAuthentication <Basic | Digest | Negotiate>]
           [-ProxyCredential <PSCredential>]
           [-SkipCACheck ]
           [-SkipCNCheck ]
           [-SkipRevocationCheck ]
           [-SPNPort <0->]
           [-UseUTF16 ]

Как видите, вы можете указать, как проходить прокси, вы можете предоставить один набор учетных данных для прокси и другой набор учетных данных для конечной точки. Все это говорит о том, что вы ничего не указываете, а мы будем использовать порт 80.

Эксперимент! Наслаждайтесь! Engage!

Джеффри Сновер [MSFT]
Архитектор Windows Management Partner

3 голосов
/ 11 октября 2009

Порты по умолчанию, используемые для удаленного управления WS-Management и PowerShell, были изменены на 5985 и 5986 для соединений через HTTP и HTTPS, соответственно.

Подробнее в блоге Windows Management Infrstructure - http://blogs.msdn.com/wmi/archive/2009/07/22/new-default-ports-for-ws-management-and-powershell-remoting.aspx

0 голосов
/ 10 февраля 2009

Какие порты вам нужно открыть, полностью зависит от того, что вы планируете делать в своих скриптах.

...