Pergunta

Estou interessado em executar scripts do PowerShell em um computador atrás de um firewall. Que portas vai Eu preciso ter aberto? Será que nenhuma configuração especial será necessário ou eu vou ser apenas ser capaz de se conectar a uma nova instalação do Windows Server 2008 R2 e começar a executar meus scripts?

Foi útil?

Solução

MichaelGG entendi direito - tudo que você precisa fazer é usar o nativo de comunicação remota disponível em PowerShell V2. Dá-lhe um grau de loucura de controle sobre a rede todos usando o protocolo WS-MAN (que é um protocolo padrão de gestão que é implementada pelo nosso serviço WinRM).

A forma como o V2 ??obras comunicação remota é que você pode chamar um comando (comando único, encanamento, conjunto de comandos, ou toda roteiro) em uma máquina remota (s) e especificar como você deseja que o comando a ser executado.

por exemplo. 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 ]

Você também pode fornecer 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 ]

Como você pode ver, você pode especificar como atravessar proxies, você pode fornecer um conjunto de credenciais para o proxy e um conjunto diferente de credenciais para o ponto final. Tudo o que disse, o caso simples é que você não especificar nada e vamos usar a porta 80.

Experiment! Aproveitar! Envolver-se!

Jeffrey Snover [MSFT]
O Windows Management Partner arquiteto

Outras dicas

PowerShell 2 fará comunicação remota sobre o WinRM (WinRM já está disponível, desde o Windows 2003 R2, IIRC). WinRM é apenas SOAP sobre HTTP [S]. Então, a porta é 80 por padrão, 443 para SSL por padrão.

Eis um resumo rápido sobre PS2 comunicação remota , e um on WinRM para 2003.

As portas padrão utilizados para WS-Management e PowerShell remoting foram alterados para 5985 um 5986 para conexões via HTTP e HTTPS, respectivamente.

Mais detalhes em Windows Management Infrstructure Blog - http://blogs.msdn.com/wmi/archive/2009/07/22/new-default-ports-for-ws-management-and-powershell-remoting aspx

Que portas que você precisa abrir é inteiramente dependente do que você pretende fazer em seus scripts.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top