пятница, 8 августа 2008 г.

Публикация сайта MS SharePoint Servre 2007 (MOSS) в Internet средствами MS ISA Server 2006. Часть 2

Данная часть является продолжением рассказа о публикации сайтов MOSS, вся чать посвящена настройке ISA Server 2006.

В связи с тем, что в правилах ISA Server уже используется Listner с портом 443 (для OWA), необходимо открыть на сервере еще один порт для SSL. Делается это следующим образом:

/////UPDATE: Проще и приятней, на мой взгляд, работать с PowerShell, поэтому:

Скрипт для подключения к COM объекту ISA Server ISAcom.ps1:

param([string]$Name="*")
$Root = New-Object -comObject "FPC.Root"
if( $root.Arrays.Count -gt 0)
{
$root.Arrays|?{$_ -like $name}
}
else
{
if ($name -eq "*")
{
$name = read-host "Enter name of the ISA array"
}
$root.Arrays.Connect($name)
}

Запускаем на ISA. Подключаемся:

$isa = .\ISAcom.ps1

Смотрим какие порты уже открыты:

$isa.ArrayPolicy.WebProxy.TunnelPortRanges

Добавляем нужный нам:

$isa.ArrayPolicy.WebProxy.TunnelPortRanges.AddRange("SSL 44343", 44343, 44343)

Принять изменения:

$isa.ApplyChanges()

///////Close UPDATE

Зайти на сервер и запустить скрипт:

AddTPRange.vbs

Option Explicit

' Define the constants needed.

Const Error_TypeMismatch = &HD

Const Error_AlreadyExists = &H800700B7

Const Error_OutOfRange = &H80070057

Main(WScript.Arguments)

Sub Main(args)

If(args.Count <> 2) Then

Usage()

Else

AddTPRange args(0), args(1)

End If

End Sub

Sub AddTPRange(newRangeName, newTunnelPort)

' Create the root object.

Dim root ' The FPCLib.FPC root object

Set root = CreateObject("FPC.Root")

'Declare the other objects needed.

Dim isaArray ' An ISA Server array object

Dim tpRanges ' An FPCTunnelPortRanges collection

Dim newRange ' An FPCTunnelPortRange object

Dim port ' An Integer

' Get a reference to the array and to

' the collection of tunnel port ranges.

Set isaArray = root.GetContainingArray

Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRanges

' Create a new tunnel port range.

On Error Resume Next

port = CDbl(newTunnelPort)

If Err.Number = Error_TypeMismatch Then

WScript.Echo "A number must be entered for the port to be included."

WScript.Quit

End If

Err.Clear

Set newRange = tpRanges.AddRange(newRangeName, port, port)

If Err.Number = Error_AlreadyExists Then

WScript.Echo "A port range with the name specified already exists."

WScript.Quit

ElseIf Err.Number = Error_OutOfRange Then

WScript.Echo "The range of permissible ports is from 1 through 65535."

WScript.Quit

End If

On Error GoTo 0

' Save the changes to the collection of tunnel port ranges

' with fResetRequiredServices set to True to restart the Firewall service.

tpRanges.Save True

WScript.Echo "Done!"

End Sub

Sub Usage()

WScript.Echo "Usage:" & VbCrLf _

& " " & WScript.ScriptName & " RangeName TunnelPort" & VbCrLf _

& "" & VbCrLf _

& " RangeName - Name of the tunnel port range to be added" & VbCrLf _

& " TunnelPort - Port to be included in the new tunnel port range"

WScript.Quit

End Sub

Пример команды: CScript AddTPRange.vbs "SSL 44343" 43343

Смотрим, открылся ли порт: CScript ShowTPRanges.vbs

Sub ShowTPRanges()

' Create the root object.

Dim root ' The FPCLib.FPC root object

Set root = CreateObject("FPC.Root")

' Declare the other objects needed.

Dim isaArray ' An FPCArray object

Dim tpRanges ' An FPCTunnelPortRanges collection

Dim tpRange ' An FPCTunnelPortRange object

' Get references to the array object

' and the collection of tunnel port ranges.

Set isaArray = root.GetContainingArray()

Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRanges

' If at least one tunnel port range is defined in the

' collection, display the names and port ranges for all

' the tunnel port ranges.

If tpRanges.Count > 0 Then

For Each tpRange In tpRanges

WScript.Echo tpRange.Name & ": " & tpRange.TunnelLowPort & _

"-" & tpRange.TunnelHighPort

Next

Else

WScript.Echo "No tunnel port ranges are defined."

End If

End Sub

Technorati Теги: ,,

2 коммент.:

Анонимный комментирует...

Ошибку выкидывает скрипт.Причём какие то странные.Если считать без пробелов между строками
Стр 2 символ 1 - в любой кодировке не нравится буква O
Стр 58 символ 24 - тут вобще на пробел ругается

---------------------------
Windows Script Host
---------------------------
Script:C:\Documents and Settings\admin\Desktop\port.vbs
Line: 58
Char: 23
Error: Expected end of statement
Code: 800A0401
Source: Microsoft VBScript compilation error

---------------------------
OK
---------------------------

Denis Kichin комментирует...

Не должен вроде бы. Взят с офиц. руководств. Есть альтернатива (причем значительно проще) на PowerShell, - обновил пост.