Question

Je suis intéressé par l'exécution de scripts PowerShell sur un ordinateur derrière un pare-feu. Quels ports dois-je avoir ouvert? Est-ce une configuration spéciale est nécessaire ou je vais être tout simplement être en mesure de se connecter à une nouvelle installation de Windows Server 2008 R2 et commencer à exécuter mes scripts?

Était-ce utile?

La solution

MichaelGG avait raison - tout ce que vous devez faire est d'utiliser la Remoting native disponible dans PowerShell V2. Il vous donne un degré fou de contrôle sur la mise en réseau tout en utilisant le protocole WS-MAN (qui est un protocole de gestion standard qui est mis en œuvre par notre service WinRM).

La façon dont fonctionne le Remoting V2 est que vous pouvez invoquer une commande (commande unique, d'un pipeline, un ensemble de commandes ou d'un script entier) sur une machine distante (s) et indiquez comment vous voulez que la commande à exécuter.

par exemple. 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 ]

Vous pouvez également fournir 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 ]

Comme vous pouvez le voir, vous pouvez indiquer comment parcourir les procurations, vous pouvez fournir un ensemble de pouvoirs au proxy et un ensemble d'informations d'identification au noeud final. Cela dit, le cas simple est que vous ne spécifiez rien et nous allons utiliser le port 80.

Expérience! Prendre plaisir! Mobilisez!

Jeffrey Snover [MSFT]
Windows Management Architect Partner

Autres conseils

PowerShell 2 fera Remoting sur WinRM (WinRM est déjà disponible, depuis Windows 2003 R2, IIRC). WinRM est juste SOAP sur HTTP [S]. Ainsi, le port est 80 par défaut, 443 pour SSL par défaut.

Voici un aperçu rapide sur PS2 Remoting , et un sur WinRM pour 2003.

Les ports par défaut utilisés pour WS-Management et PowerShell Remoting ont été modifiés pour 5985 un 5986 pour les connexions via HTTP et HTTPS, respectivement.

Plus de détails sur le blog Windows Management infrstructure - http://blogs.msdn.com/wmi/archive/2009/07/22/new-default-ports-for-ws-management-and-powershell-remoting .aspx

Quels sont les ports dont vous avez besoin ouvert dépend entièrement de ce que vous comptez faire dans vos scripts.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top