Pregunta

Estoy interesado en la ejecución de scripts de PowerShell en un equipo detrás de un firewall. ¿Qué puertos necesito para tener abiertos? Será necesaria ninguna configuración especial o te puede sólo ser capaz de conectarse a una instalación nueva de Windows Server 2008 R2 y comenzar a ejecutar mis guiones?

¿Fue útil?

Solución

MichaelGG lo hizo bien - todo lo que necesita hacer es utilizar la interacción remota nativa disponible en PowerShell V2. Se le da un grado de control sobre loca de Redes utilizando el protocolo WS-MAN (que es un protocolo estándar de gestión que se realiza mediante nuestro servicio WinRM).

La forma en que funciona la interacción remota V2 es que se puede invocar un comando (solo comando, tubería, un conjunto de comandos, o guión completo) en una máquina remota (s) y especificar cómo desea que el comando a ejecutar.

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

También puede proporcionar 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 se puede ver, se puede especificar cómo atravesar servidores proxy, puede proporcionar un conjunto de credenciales al proxy y un conjunto diferente de credenciales al punto final. Dicho todo esto, el caso más simple es que no se especifica nada y nos vamos a usar el puerto 80.

Experimento! ¡Disfrutar! Participar!

Jeffrey Snover [MSFT]
Socio de administración de Windows Arquitecto

Otros consejos

2 PowerShell hará interacción remota sobre WinRM (WinRM ya está disponible, ya que Windows 2003 R2, IIRC). WinRM es sólo SOAP sobre HTTP [S]. Por lo que el puerto es 80 por defecto, 443 para SSL por defecto.

Aquí está una descripción rápida de PS2 interacción remota , y uno en WinRM para 2003.

Los puertos predeterminados utilizados para WS-Management y comunicación remota de PowerShell se han cambiado a 5985 un 5986 para las conexiones a través de HTTP y HTTPS, respectivamente.

Más detalles en el blog de administración de Windows Infrstructure - http://blogs.msdn.com/wmi/archive/2009/07/22/new-default-ports-for-ws-management-and-powershell-remoting .aspx

¿Qué puertos que necesita abierta es totalmente dependiente de lo que va a estar haciendo dentro de las secuencias de comandos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top