PowerShell 2.0将“防火墙友好”是什么意思?

时间:2009-02-10 14:43:34

标签: powershell powershell-remoting

我有兴趣在防火墙后面的计算机上执行powershell脚本。我需要打开哪些端口?是否需要任何特殊配置,或者我将能够连接到全新安装的Windows Server 2008 r2并开始执行我的脚本?

4 个答案:

答案 0 :(得分:7)

PowerShell 2将通过WinRM进行远程处理(WinRM已经可用,因为Windows 2003 R2,IIRC)。 WinRM只是SOAP over HTTP [S]。因此默认情况下端口为80,SSL为443。

以下是对PS2 remoting的快速概述,以及2003年WinRM的概述。

答案 1 :(得分:7)

MichaelGG做对了 - 您需要做的就是使用PowerShell V2中提供的本机远程处理。它使用WS-MAN协议(这是一种由我们的WINRM服务实现的标准管理协议)为您提供了对网络的疯狂控制。

V2远程处理的工作方式是您可以在远程计算机上调用命令(单个命令,管道,命令集或整个脚本),并指定您希望该命令的运行方式。

e.g。 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。

实验!请享用!接合!

Jeffrey Snover [MSFT]
Windows管理合作伙伴架构师

答案 2 :(得分:3)

用于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

答案 3 :(得分:-1)

您需要打开哪些端口完全取决于您计划在脚本中执行的操作。