查看單個文章
舊 2004-02-26, 05:12 AM   #6 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

一個匯入/匯出 ISA 配置的指令碼,很有用阿,把它存為vbs 就可以了
--------------------------------------------------------------------------------

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Copyright (c) 2001 Microsoft Corporation. All rights reserved.
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Notwithstanding the terms of the license accompanying this Product,
' this script is provided "as is" and Microsoft does not make any assurances
' with regard to the accuracy of this script or to the accuracy of any results
' which derive from the use of this script.
'
' Ernest Chen - MCS Socal
' Ver 1.0.24
'
' Jim Harrison - ISA QFE
' Ver 1.0.3
'
' History:
' 5/17/2003 - added Routing rules to the mix
'
' This script only functions with Standalone ISA Servers
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim ISA
Dim fso, f
Dim SourceName, TargetName
Dim Arrays
Dim Arr
Dim Elements
Dim NumCmdLineArguments

Const ForReading = 1, ForWriting = 2
Const DestinationTypeDomain = 0, DestinationTypeSingleIp = 1, DestinationTypeIpRange = 2
Const TCP = 0, UDP = 1
Const ERROR_ALREADY_EXISTS = 183

Function InputBoxAnswer(message,messagetitle,answerdefault)
IBAnswer = InputBox(message,messagetitle,answerdefault)
If IBAnswer = "y" Then
InputBoxAnswer = TRUE
Else
InputBoxAnswer = FALSE
End If
End Function

Function InitScriptFile()
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile("ImportISASettings.vbs", True, True)
f.WriteLine "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
f.WriteLine "'"
f.WriteLine "' Copyright (c) 2001 Microsoft Corporation. All rights reserved."
f.WriteLine "'"
f.WriteLine "' Notwithstanding the terms of the license accompanying this Product,"
f.WriteLine "' this script is provided ""as is"" and Microsoft does not make any assurances"
f.WriteLine "' with regard to the accuracy of this script or to the accuracy of any results"
f.WriteLine "' which derive from the use of this script."
f.WriteLine "'"
f.WriteLine "' Ernest Chen - MCS Socal"
f.WriteLine "' Ver 1.0.24"
f.WriteLine "'"
f.WriteLine "' Jim Harrison - ISA QFE"
f.WriteLine "' Ver 1.0.3"
f.WriteLine "'"
f.WriteLine "' History:"
f.WriteLine "' 5/17/2003 - added Routing rules to the mix"
f.WriteLine "'"
f.WriteLine "' This script only functions with Standalone ISA Servers"
f.WriteLine "'"
f.WriteLine "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
f.WriteLine

Set ISA = CreateObject("FPC.Root")
ISA.Refresh

' Get inputs from user (if not in quiet mode, otherwise use command line argument)

' Source array name
Set Arr = ISA.Arrays.GetContainingArray

f.WriteLine "' This script imports policy elements, access policies, publishing and routing rules of source " & """" & Arr.Name & """" & " to the target array."
f.WriteLine
f.WriteLine "Const ERROR_ALREADY_EXISTS = 183"
f.WriteLine "Sub CheckError()"
f.WriteLine " On Error Resume Next"
f.WriteLine " If (Err.Number <> 0) And (Err.Number <> ERROR_ALREADY_EXISTS) Then"
f.WriteLine " MsgBox " & """" & "An error has occured:" & """" & " & vbCrLf & Err.Description & Err.Number"
f.WriteLine " WScript.Quit Err.Number"
f.WriteLine " End If"
f.WriteLine "End Sub"
f.WriteLine

f.WriteLine "On Error Resume Next"
f.WriteLine "Set ISA = CreateObject(" & """" & "FPC.Root" & """" & ")"
f.WriteLine "ISA.Refresh"
f.WriteLine "Set ISAArray = ISA.Arrays.GetContainingArray"
f.WriteLine "Set Elements = ISAArray.PolicyElements"
f.writeLine "Set APolicy = ISAArray.ArrayPolicy"
f.writeline "Set Publishing = ISAArray.Publishing"
f.writeline "Set RoutingRules = ISAArray.NetworkConfiguration.RoutingRules"
f.WriteLine

InitScriptFile = True
End Function

' ------------------------------------------------------------------------------------------------------------------

Sub CloseScriptFile()
f.Close
End Sub

' ------------------------------------------------------------------------------------------------------------------

Sub AddImportProtocolDefinitionsToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set Protocols = Elements.Protocoldefinitions"
Set Protocols = Arr.policyElements.Protocoldefinitions
For Each Protocol In Protocols
If Protocol.IsISAProtocol = FALSE Then
If Protocol.InitialConnectionProtocol = TCP Then
f.Write "Set NewDefinition = Protocols.AddTCP ("
Else
f.Write "Set NewDefinition = Protocols.AddUDP ("
End If

f.Write """" & Protocol.Name & """" & ","

If Protocol.InitialConnectionProtocol = TCP Then
f.Write Protocol.TCPInitialConnectionDirection & ","
Else
f.Write Protocol.UDPInitialConnectionDirection & ","
End If

f.Write Protocol.InitialConnectionPort & ")" & vbCrLf
f.WriteLine "CheckError"

f.WriteLine "NewDefinition.Description = " & """" & Protocol.Description & """"

' Secondary connections
Set SecConns = Protocol.SecondaryConnections
For Each secconn In SecConns

If secconn.Protocol = TCP Then
f.WriteLine "NewDefinition.SecondaryConnections.AddTCP " & secconn.TCPDirection & "," & secconn.PortLow & "," & secconn.PortHigh
Else
f.WriteLine "NewDefinition.SecondaryConnections.AddUDP " & secconn.UDPDirection & "," & secconn.PortLow & "," & secconn.PortHigh
End If

f.WriteLine "CheckError"
Next
f.WriteLine
End If
Next
f.WriteLine "Protocols.Save"
f.WriteLine "CheckError"
End Sub

' ------------------------------------------------------------------------------------------------------------------

Sub AddImportClientSetsToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set ClientSets = Elements.ClientAddressSets"
Set clientsets = Arr.policyElements.ClientAddressSets
For Each ClientSet In ClientSets
f.WriteLine "Set NewDefinition = ClientSets.Add (" & """" & ClientSet.Name & """" & ")"
f.WriteLine "CheckError"

f.WriteLine "NewDefinition.Description = " & """" & ClientSet.Description & """"

' Set IP ranges
For Each IPRange In ClientSet
f.WriteLine "NewDefinition.Add " & """" & IPRange.IP_From & """" & "," & """" & IPRange.IP_To & """"
f.WriteLine "CheckError"
Next
f.WriteLine
Next
f.WriteLine "ClientSets.Save"
f.WriteLine "CheckError"
End Sub


' ------------------------------------------------------------------------------------------------------------------

Sub AddImportDestinationSetsToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set DestinationSets = Elements.DestinationSets"
Set DestinationSets = Arr.policyElements.DestinationSets
For Each DestinationSet In DestinationSets
f.WriteLine "Set NewDefinition = DestinationSets.Add (" & """" & DestinationSet.Name & """" & ")"
f.WriteLine "CheckError"

f.WriteLine "NewDefinition.Description = " & """" & DestinationSet.Description & """"

' Add destination items
For Each Destination In DestinationSet
If Destination.Type = DestinationTypeDomain Then
f.WriteLine "NewDefinition.Add " & """" & destination.DomainName & """" & "," & """" & """" & "," & """" & Destination.Path & """"
ElseIf Destination.Type = DestinationTypeSingleIp Then
f.WriteLine "NewDefinition.Add " & """" & Destination.IP_From & """" & "," & """" & """" & "," & """" & destination.path & """"
Else
f.WriteLine "NewDefinition.Add " & """" & Destination.IP_From & """" & "," & """" & destination.IP_To & """" & "," & """" & destination.path & """"
End If
f.WriteLine "CheckError"

f.WriteLine "NewDefinition.Save"
f.WriteLine "CheckError"
Next
f.WriteLine
Next
f.WriteLine "DestinationSets.Save"
f.WriteLine "CheckError"
End Sub

' ------------------------------------------------------------------------------------------------------------------


Sub AddImportProtocolRulesToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set ProtocolRules = APolicy.ProtocolRules"
Set ProtocolRules = Arr.ArrayPolicy.ProtocolRules
For Each ProtocolRule In ProtocolRules
f.WriteLine "Set NewRule = ProtocolRules.Add (" & """" & ProtocolRule.Name & """" & ")"
f.WriteLine "CheckError"
f.WriteLine "NewRule.Description = " & """" & ProtocolRule.Description & """"
f.WriteLine "NewRule.Enabled = " & ProtocolRule.Enabled
f.WriteLine "NewRule.Action = " & ProtocolRule.Action

If ProtocolRule.ScheduleUsed.Name = "" Then
f.WriteLine "NewRule.SetSchedule (" & """" & " " & """" & ")"
Else
f.WriteLine "NewRule.SetSchedule (" & """" & ProtocolRule.ScheduleUsed.Name & """" & ")"
End If

f.WriteLine "NewRule.ProtocolSelectionMethod = " & ProtocolRule.ProtocolSelectionMethod

' SpecifiedProtocols
Set PRProtocols = ProtocolRule.SpecifiedProtocols
For Each PRProtocol In PRProtocols
f.WriteLine "NewRule.SpecifiedProtocols.Add " & """" & PRProtocol.Name & """" & ", " & """" & PRProtocol.ApplicationFilterGuid & """" & ", " & PRProtocol.Scope
f.WriteLine "CheckError"
Next


f.WriteLine "NewRule.AppliesToMethod = " & ProtocolRule.AppliesToMethod
' ClientSetsUsed
Set PRClientSets = ProtocolRule.ClientAddressSetsUsed
For Each PRClientSet In PRClientSets
f.WriteLine "NewRule.ClientAddressSetsUsed.Add " & """" & PRClientSet.Name & """" & ", " & """" & PRClientSet.ApplicationFilterGuid & """" & ", " & PRClientSet.Scope
f.WriteLine "CheckError"
Next
' ClientSetsExcluded
Set PRClientSetsEx = ProtocolRule.ClientAddressSetsExcluded
For Each PRClientSetEx In PRClientSetsEx
f.WriteLine "NewRule.ClientAddressSetsExcluded.Add " & """" & PRClientSetEx.Name & """" & ", " & """" & PRClientSetEx.ApplicationFilterGuid & """" & ", " & PRClientSetEx.Scope
f.WriteLine "CheckError"
Next
' AppliesToAccounts
Set PRAccounts = ProtocolRule.AppliesToAccounts
For Each PRAccount In PRAccounts
f.WriteLine "NewRule.AppliesToAccounts.Add " & """" & PRAccount.Account & """" & ", " & PrAccount.AccountStatus
f.WriteLine "CheckError"
Next
f.WriteLine
Next
f.WriteLine "ProtocolRules.Save"
f.WriteLine "CheckError"
End Sub

' ------------------------------------------------------------------------------------------------------------------

Sub AddImportPacketFiltersToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set PacketFilters = APolicy.IpPacketFilters"
Set PacketFilters = Arr.ArrayPolicy.IpPacketFilters
For Each PacketFilter In PacketFilters
f.WriteLine "Set NewPFilter = PacketFilters.Add (" & """" & PacketFilter.Name & """" & ", " & PacketFilter.FilterMode & ")"
f.WriteLine "CheckError"
f.WriteLine "NewPFilter.Description = " & """" & PacketFilter.Description & """"
f.WriteLine "NewPFilter.Enabled = " & PacketFilter.Enabled
f.WriteLine "NewPFilter.FilterType = " & PacketFilter.FilterType
f.WriteLine "NewPFilter.AllServers = " & PacketFilter.AllServers
f.WriteLine "NewPFilter.ServerName = " & """" & PacketFilter.ServerName & """"
f.WriteLine "NewPFilter.ICMPCodeNumber = " & PacketFilter.ICMPCodeNumber
f.WriteLine "NewPFilter.ICMPCodeOption = " & PacketFilter.ICMPCodeOption
f.WriteLine "NewPFilter.ICMPTypeNumber = " & PacketFilter.ICMPTypeNumber
f.WriteLine "NewPFilter.ICMPTypeOption = " & PacketFilter.ICMPTypeOption
f.WriteLine "NewPFilter.LocalPortNumber = " & PacketFilter.LocalPortNumber
f.WriteLine "NewPFilter.LocalPortType = " & PacketFilter.LocalPortType
f.WriteLine "NewPFilter.LogMatchingPackets = " & PacketFilter.LogMatchingPackets
f.WriteLine "NewPFilter.PacketDirection = " & PacketFilter.PacketDirection
f.WriteLine "NewPFilter.ProtocolNumber = " & PacketFilter.ProtocolNumber
f.WriteLine "NewPFilter.RemotePortNumber = " & PacketFilter.RemotePortNumber
f.WriteLine "NewPFilter.RemotePortType = " & PacketFilter.RemotePortType
f.WriteLine "NewPFilter.UDPPacketDirection = " & PacketFilter.UDPPacketDirection
f.WriteLine "NewPFilter.SetLocalHost " & PacketFilter.LocalHostType & ", " & """" & PacketFilter.LocalHostIpAddress & """" & ", " & """" & PacketFilter.LocalHostIpMask & """"
f.WriteLine "NewPFilter.SetRemoteHost " & PacketFilter.RemoteHostType & ", " & """" & PacketFilter.RemoteHostIpAddress & """" & ", " & """" & PacketFilter.RemoteHostIpMask & """"
f.WriteLine
Next
f.WriteLine "PacketFilters.Save"
f.WriteLine "CheckError"
End Sub

' -------------------------------------------------------

Sub AddImportRoutingRulesToScript()

' On Error Resume Next

Dim RoutingRules
Dim RoutingRule
Dim AppliesTo
Dim ClientCert
Dim PrimaryRoute

Const fpcSpecifiedDestinationSet = 3
Const fpcAllExceptDestinationSet = 4
Const fpcPrimaryRouteDirect = 0
Const fpcPrimaryRouteUpstream = 1
Const fpcPrimaryRouteAlternate = 2
Const fpcBackupRouteNone = 0
Const fpcBackupRouteDirect = 1
Const fpcBackupRouteUpstream = 2
Const FWMode = 59

f.WriteLine "'-------------------------------------------------------"

Set RoutingRules = Arr.NetworkConfiguration.RoutingRules
For Each RoutingRule In RoutingRules
If RoutingRule.IsDefault Then
f.WriteLine "Set NewRoutingRule = RoutingRules(""" & RoutingRule.Name & """)"
Else
f.WriteLine "Set NewRoutingRule = RoutingRules.Add(" & """" & RoutingRule.Name & """" & ")"
AppliesTo = RoutingRule.AppliesToDestination
If ( AppliesTo = fpcSpecifiedDestinationSet ) Or ( AppliesTo = fpcAllExceptDestinationSet ) Then
f.WriteLine "NewRoutingRule.SetDestination " & AppliesTo & ", " & """" & RoutingRule.DestinationSetUsed & """"
Else
f.WriteLine "NewRoutingRule.SetDestination " & AppliesTo
End If
If ( Arr.Components <> FWMode ) Then
f.WriteLine "NewRoutingRule.CacheResponseCondition = " & RoutingRule.CacheResponseCondition 'Gets or sets the conditions under which a response is cached.
f.WriteLine "NewRoutingRule.UseCacheCondition = " & RoutingRule.UseCacheCondition 'Gets or sets the situation in which a cache should be used instead of the routing action specified.
End If
f.WriteLine "NewRoutingRule.Enabled = " & RoutingRule.Enabled
f.WriteLine "NewRoutingRule.Description = " & """" & RoutingRule.Description & """"
End If

f.WriteLine "NewRoutingRule.NonSecureProtocolRedirection = " & RoutingRule.NonSecureProtocolRedirection 'Gets or sets the protocol used when delegating a request that came on a nonsecure channel.
f.WriteLine "NewRoutingRule.SecureProtocolRedirection = " & RoutingRule.SecureProtocolRedirection 'Gets or sets the protocol used when delegating a request that came on a secure channel.
f.WriteLine "NewRoutingRule.SSLRequireSecureChannel = " & RoutingRule.SSLRequireSecureChannel 'Gets or sets whether or not a secure channel is required.

Set ClientCert = RoutingRule.SSLClientCertificate
If ( Err.Number = 0 ) And Not ( ClientCert Is Nothing ) Then
f.WriteLine "Set NewClientCert = NewRoutingRule.SSLClientCertificate"
f.WriteLine "NewClientCert.ExpirationDate = " & """" & ClientCert.ExpirationDate & """"
f.WriteLine "NewClientCert.FriendlyName = " & """" & ClientCert.FriendlyName & """"
f.WriteLine "NewClientCert.Hash = " & """" & ClientCert.Hash & """"
f.WriteLine "NewClientCert.IssuedBy = " & """" & ClientCert.IssuedBy & """"
f.WriteLine "NewClientCert.IssuedTo = " & """" & ClientCert.IssuedTo & """"
Else
Err.Clear
End If

Set PrimaryRoute = RoutingRule.PrimaryRoute
If ( Err.Number = 0 ) And Not ( PrimaryRoute Is Nothing ) Then
f.WriteLine "Set NewPrimaryRoute = NewRoutingRule.PrimaryRoute" 'Gets a reference to an object that represents the specific proxy or array of the main (primary) route.
f.WriteLine "NewPrimaryRoute.RouteType = " & PrimaryRoute.RouteType

Select Case PrimaryRoute.RouteType

Case fpcPrimaryRouteDirect
'do nothing else - direct connection

Case fpcPrimaryRouteUpstream
If PrimaryRoute.AutomaticPollConfig Then
f.WriteLine "NewPrimaryRoute.SetAutoPollConfig " & PrimaryRoute.AutomaticPollConfig & ", """ & PrimaryRoute.PollAtUrl & """" 'Gets whether proxy polling of the upstream proxy or array for membership information is enabled.
End If
If PrimaryRoute.RouteServerName <> "" Then
f.WriteLine "NewPrimaryRoute.SetServerAndPort " & """" & PrimaryRoute.RouteServerName & """, " & PrimaryRoute.RouteServerPort & ", " & PrimaryRoute.RouteServerSSLPort
End If
If PrimaryRoute.AuthenticationEnabled Then
f.WriteLine "NewPrimaryRoute.AuthenticationEnabled = " & PrimaryRoute.AuthenticationEnabled 'Gets or sets whether use of authentication in upstream routing is enabled.
f.WriteLine "NewPrimaryRoute.AuthenticationType = " & PrimaryRoute.AuthenticationType 'Gets or sets the type of authentication that the primary route server or array uses.
Set Credentials = PrimaryRoute.Credentials
f.WriteLine "Set NewCredentials = NewPrimaryRoute.Credentials"
f.WriteLine "NewCredentials.UserName = " & """" & Credentials.UserName & """"
End If

Set BackupRoute = PrimaryRoute.BackupRoute
If ( Err.Number = 0 ) And Not ( BackupRoute Is Nothing ) Then
f.WriteLine "Set NewBackupRoute = NewPrimaryRoute.BackupRoute"
f.WriteLine "NewBackupRoute.BackupRouteType = " & BackupRoute.BackupRouteType
If BackupRoute.BackupRouteType = fpcBackupRouteUpstream Then
If BackupRoute.AutomaticPollConfig Then
f.WriteLine "NewBackupRoute.SetAutoPollConfig " & BackupRoute.AutomaticPollConfig & ", """ & BackupRoute.PollAtUrl & """" 'Gets whether proxy polling of the upstream proxy or array for membership information is enabled.
End If
If BackupRoute.RouteServerName <> "" Then
f.WriteLine "NewBackupRoute.SetServerAndPort " & """" & BackupRoute.RouteServerName & """, " & BackupRoute.RouteServerPort & ", " & BackupRoute.RouteServerSSLPort
End If
End If
If BackupRoute.AuthenticationEnabled Then
f.WriteLine "NewBackupRoute.AuthenticationEnabled = " & BackupRoute.AuthenticationEnabled 'Gets or sets whether use of authentication in upstream routing is enabled.
f.WriteLine "NewBackupRoute.AuthenticationType = " & BackupRoute.AuthenticationType 'Gets or sets the type of authentication that the primary route server or array uses.
Set Credentials = BackupRoute.Credentials
f.WriteLine "Set NewCredentials = NewBackupRoute.Credentials"
f.WriteLine "NewCredentials.UserName = " & """" & Credentials.UserName & """"
End If
Else
msgbox "Error 0x" & Hex( Err.Number ) & "; " & Error.Description & "; " & "While creating the BackupRoute Object."
End If

Case fpcPrimaryRouteAlternate
f.WriteLine "NewPrimaryRoute.SetRedirectHostAndPorts & " & """" & PrimaryRoute.RedirectHost & """, " & PrimaryRoute.RedirectHostPort & ", " & PrimaryRoute.RedirectHostSSLPort

End Select

Else
Err.Clear
End If

f.WriteLine "NewRoutingRule.Save" & vbCrLf

Next

End Sub

' -------------------------------------------------------

Sub AddImportSiteContentRulesToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set SiteContentRules = APolicy.SiteAndContentRules"
Set SiteContentRules = Arr.ArrayPolicy.SiteAndContentRules
For Each SiteContentRule In SiteContentRules
f.WriteLine "Set NewSCRule = SiteContentRules.Add (" & """" & SiteContentRule.Name & """" & ")"
f.WriteLine "CheckError"
f.WriteLine "NewSCRule.Description = " & """" & SiteContentRule.Description & """"
f.WriteLine "NewSCRule.Enabled = " & SiteContentRule.Enabled
f.WriteLine "NewSCRule.Action = " & SiteContentRule.Action
f.WriteLine "NewSCRule.AppliesToContentMethod = " & SiteContentRule.AppliesToContentMethod
f.WriteLine "NewSCRule.RedirectURL = " & """" & SiteContentRule.RedirectURL & """"
f.WriteLine "NewSCRule.Action = " & SiteContentRule.Action
f.WriteLine "NewSCRule.SetDestination " & SiteContentRule.AppliesToDestination & ", " & """" & SiteContentRule.DestinationSetUsed & """"

If SiteContentRule.ScheduleUsed.Name = "" Then
f.WriteLine "NewSCRule.SetSchedule (" & """" & " " & """" & ")"
Else
f.WriteLine "NewSCRule.SetSchedule (" & """" & SiteContentRule.ScheduleUsed.Name & """" & ")"
End If

f.WriteLine "NewSCRule.AppliesToMethod = " & SiteContentRule.AppliesToMethod
' ClientSetsUsed
Set SCRClientSets = SiteContentRule.ClientAddressSetsUsed
For Each SCRClientSet In SCRClientSets
f.WriteLine "NewSCRule.ClientAddressSetsUsed.Add " & """" & SCRClientSet.Name & """" & ", " & """" & SCRClientSet.ApplicationFilterGuid & """" & ", " & SCRClientSet.Scope
f.WriteLine "CheckError"
Next
' ClientSetsExcluded
Set SCRClientSetsEx = SiteContentRule.ClientAddressSetsExcluded
For Each SCRClientSetEx In SCRClientSetsEx
f.WriteLine "NewSCRule.ClientAddressSetsExcluded.Add " & """" & SCRClientSetEx.Name & """" & ", " & """" & SCRClientSetEx.ApplicationFilterGuid & """" & ", " & SCRClientSetEx.Scope
f.WriteLine "CheckError"
Next
' AppliesToAccounts
Set SCRAccounts = SiteContentRule.AppliesToAccounts
For Each SCRAccount In SCRAccounts
f.WriteLine "NewSCRule.AppliesToAccounts.Add " & """" & SCRAccount.Account & """" & ", " & SCRAccount.AccountStatus
f.WriteLine "CheckError"
Next

' Not sure about multiple Content Groups?
' SpecifiedContentGroups
Set SCRContentGroups = SiteContentRule.ContentGroupsUsed
For Each SCRContentGroup In SCRContentGroups
f.WriteLine "NewSCRule.ContentGroupsUsed.Add " & """" & SCRContentGroup.Name & """" & ", " & """" & SCRContentGroup.ApplicationFilterGuid & """" & ", " & SCRContentGroup.Scope
f.WriteLine "CheckError"
Next
f.WriteLine
Next
f.WriteLine "SiteContentRules.Save"
f.WriteLine "CheckError"
End Sub

' ----------------------------------------------

Sub AddImportServerPublishingRulesToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set ServerPubRules = Publishing.ServerPublishingRules"
Set ServerPubRules = Arr.Publishing.ServerPublishingRules
f.WriteLine "CheckError"
For Each ServerPubRule In ServerPubRules
f.WriteLine "Set NewPubRule = ServerPubRules.Add (" & """" & ServerPubRule.Name & """" & ")"
f.WriteLine "CheckError"
f.WriteLine "NewPubRule.Description = " & """" & ServerPubRule.Description & """"
f.WriteLine "NewPubRule.Enabled = " & ServerPubRule.Enabled
f.WriteLine "NewPubRule.InternalIp = " & """" & ServerPubRule.InternalIp & """"
f.WriteLine "NewPubRule.ExternalIp = " & """" & ServerPubRule.ExternalIp & """"
f.WriteLine "NewPubRule.SetProtocol " & """" & ServerPubRule.ProtocolUsed.Name & """" & ", " & """" & ServerPubRule.ProtocolUsed.ApplicationFilterGuid & """"
f.WriteLine "NewPubRule.AppliesToMethod = " & ServerPubRule.AppliesToMethod
' ClientSetsUsed
Set SPRClientSets = ServerPubRule.ClientAddressSetsUsed
For Each SPRClientSet In SPRClientSets
f.WriteLine "NewPubRule.ClientAddressSetsUsed.Add " & """" & SPRClientSet.Name & """" & ", " & """" & SPRClientSet.ApplicationFilterGuid & """" & ", " & SPRClientSet.Scope
f.WriteLine "CheckError"
Next
' ClientSetsExcluded
Set SPRClientSetsEx = ServerPubRule.ClientAddressSetsExcluded
For Each SPRClientSetEx In SPRClientSetsEx
f.WriteLine "NewPubRule.ClientAddressSetsExcluded.Add " & """" & SPRClientSetEx.Name & """" & ", " & """" & SPRClientSetEx.ApplicationFilterGuid & """" & ", " & SPRClientSetEx.Scope
f.WriteLine "CheckError"
Next
f.WriteLine
Next
f.WriteLine "ServerPubRules.Save"
f.WriteLine "CheckError"
End Sub
' ------------------------------------------------------------------------------------------------------------------

Sub AddImportWebPublishingRulesToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set WebPubRules = Publishing.WebPublishingRules"
Set WebPubRules = Arr.Publishing.WebPublishingRules
f.WriteLine "CheckError"
For Each WebPubRule In WebPubRules
f.WriteLine "Set NewWebPubRule = WebPubRules.Add (" & """" & WebPubRule.Name & """" & ")"
f.WriteLine "CheckError"
f.WriteLine "NewWebPubRule.Description = " & """" & WebPubRule.Description & """"
f.WriteLine "NewWebPubRule.Enabled = " & WebPubRule.Enabled
f.WriteLine "NewWebPubRule.SetDestination " & WebPubRule.AppliesToDestination & ", " & """" & WebPubRule.DestinationSetUsed & """"
f.WriteLine "NewWebPubRule.SetWebSiteAndPorts " & WebPubRule.Action & ", " & """" & WebPubRule.WebSite & """" & ", " & WebPubRule.HTTPRedirectPort & ", " & """" & WebPubRule.FTPRedirectPort & """" & ", " & WebPubRule.SSLRedirectPort
f.WriteLine "NewWebPubRule.SendOriginalHostHeader = " & WebPubRule.SendOriginalHostHeader
f.WriteLine "NewWebPubRule.NonSecureProtocolRedirection = " & WebPubRule.NonSecureProtocolRedirection
f.WriteLine "NewWebPubRule.SecureProtocolRedirection = " & WebPubRule.SecureProtocolRedirection
f.WriteLine "NewWebPubRule.SSLRequireSecureChannel = " & WebPubRule.SSLRequireSecureChannel
f.WriteLine "NewWebPubRule.AppliesToMethod = " & WebPubRule.AppliesToMethod
' ClientSetsUsed
Set WPRClientSets = WebPubRule.ClientAddressSetsUsed
For Each WPRClientSet In WPRClientSets
f.WriteLine "NewWebPubRule.ClientAddressSetsUsed.Add " & """" & WPRClientSet.Name & """" & ", " & """" & WPRClientSet.ApplicationFilterGuid & """" & ", " & WPRClientSet.Scope
f.WriteLine "CheckError"
Next
' ClientSetsExcluded
Set WPRClientSetsEx = WebPubRule.ClientAddressSetsExcluded
For Each WPRClientSetEx In WPRClientSetsEx
f.WriteLine "NewWebPubRule.ClientAddressSetsExcluded.Add " & """" & WPRClientSetEx.Name & """" & ", " & """" & WPRClientSetEx.ApplicationFilterGuid & """" & ", " & WPRClientSetEx.Scope
f.WriteLine "CheckError"
Next
' AppliesToAccounts
Set WPRAccounts = WebPubRule.AppliesToAccounts
For Each WPRAccount In WPRAccounts
f.WriteLine "NewWebPubRule.AppliesToAccounts.Add " & """" & WPRAccount.Account & """" & ", " & WPRAccount.AccountStatus
f.WriteLine "CheckError"
Next
f.WriteLine
Next
f.WriteLine "WebPubRules.Save"
f.WriteLine "CheckError"
End Sub

' ---------------------------------------------------------------------------------------------------------

Sub AddImportWebProxyToScript()
f.WriteLine "'-------------------------------------------------------"
f.WriteLine "Set WebProxys = APolicy.WebProxy"
Set WebProxySet = Arr.ArrayPolicy.WebProxy
f.WriteLine "CheckError"
f.WriteLine "WebProxys.EnableAutoDiscovery = " & WebProxySet.EnableAutoDiscovery
f.WriteLine "WebProxys.AutoDiscoveryPort = " & WebProxySet.AutoDiscoveryPort
f.WriteLine "WebProxys.LoadSize = " & WebProxySet.LoadSize
f.WriteLine "WebProxys.UpstreamResolveSystem = " & WebProxySet.UpstreamResolveSystem
f.WriteLine "WebProxys.IncomingWebRequests.AllInterfaces = " & WebProxySet.IncomingWebRequests.AllInterfaces
f.WriteLine "WebProxys.IncomingWebRequests.AlwaysAuthenticate = " & WebProxySet.IncomingWebRequests.AlwaysAuthenticate
f.WriteLine "WebProxys.IncomingWebRequests.CacheSSLResponses = " & WebProxySet.IncomingWebRequests.CacheSSLResponses
f.WriteLine "WebProxys.IncomingWebRequests.ConnectionTimeout = " & WebProxySet.IncomingWebRequests.ConnectionTimeout
f.WriteLine "WebProxys.IncomingWebRequests.NumberOfConnections = " & WebProxySet.IncomingWebRequests.NumberOfConnections
f.WriteLine "WebProxys.IncomingWebRequests.ResolveInArray = " & WebProxySet.IncomingWebRequests.ResolveInArray
f.WriteLine "WebProxys.IncomingWebRequests.SSLPort = " & WebProxySet.IncomingWebRequests.SSLPort
f.WriteLine "WebProxys.IncomingWebRequests.TCPPort = " & WebProxySet.IncomingWebRequests.TCPPort
f.WriteLine "WebProxys.IncomingWebRequests.UnlimitedNumberOfConnections = " & WebProxySet.IncomingWebRequests.UnlimitedNumberOfConnections
f.WriteLine "WebProxys.OutgoingWebRequests.AllInterfaces = " & WebProxySet.OutgoingWebRequests.AllInterfaces
f.WriteLine "WebProxys.OutgoingWebRequests.AlwaysAuthenticate = " & WebProxySet.OutgoingWebRequests.AlwaysAuthenticate
f.WriteLine "WebProxys.OutgoingWebRequests.CacheSSLResponses = " & WebProxySet.OutgoingWebRequests.CacheSSLResponses
f.WriteLine "WebProxys.OutgoingWebRequests.ConnectionTimeout = " & WebProxySet.OutgoingWebRequests.ConnectionTimeout
f.WriteLine "WebProxys.OutgoingWebRequests.NumberOfConnections = " & WebProxySet.OutgoingWebRequests.NumberOfConnections
f.WriteLine "WebProxys.OutgoingWebRequests.ResolveInArray = " & WebProxySet.OutgoingWebRequests.ResolveInArray
f.WriteLine "WebProxys.OutgoingWebRequests.SSLPort = " & WebProxySet.OutgoingWebRequests.SSLPort
f.WriteLine "WebProxys.OutgoingWebRequests.TCPPort = " & WebProxySet.OutgoingWebRequests.TCPPort
f.WriteLine "WebProxys.OutgoingWebRequests.UnlimitedNumberOfConnections = " & WebProxySet.OutgoingWebRequests.UnlimitedNumberOfConnections
f.WriteLine
f.WriteLine "WebProxys.Save"
f.WriteLine "CheckError"
End Sub

' -----------------------------------------------------------------------

''''''''''''''''''''
''' Main Program '''
''''''''''''''''''''

If Not InitScriptFile Then Wscript.Quit

Set args = Wscript.Arguments
If args.Count > 0 Then
AddImportProtocolDefinitionsToScript
AddImportClientSetsToScript
AddImportDestinationSetsToScript
AddImportProtocolRulesToScript
AddImportRoutingRulesToScript
AddImportPacketFiltersToScript
AddImportSiteContentRulesToScript
AddImportWebProxyToScript
AddImportWebPublishingRulesToScript
AddImportServerPublishingRulesToScript
Else
If InputBoxAnswer("Do you want to export Protocol Definitions? (y/n)", "Export Protocol Definitions", "y") = True Then
AddImportProtocolDefinitionsToScript
End If
If InputBoxAnswer("Do you want to export Client Sets? (y/n)", "Export Client Sets", "y") = True Then
AddImportClientSetsToScript
End If
If InputBoxAnswer("Do you want to export Destination Sets? (y/n)", "Export Destination Sets", "y") = True Then
AddImportDestinationSetsToScript
End If
If InputBoxAnswer("Do you want to export Protocol Rules? (y/n)", "Export Protocol Rules", "y") = True Then
AddImportProtocolRulesToScript
End If
If InputBoxAnswer("Do you want to export Routing Rules? (y/n)", "Export Routing Rules", "y") = True Then
AddImportRoutingRulesToScript
End If
If InputBoxAnswer("Do you want to export Packet Filters? (y/n)", "Export Packet Filters", "y") = True Then
AddImportPacketFiltersToScript
End If
If InputBoxAnswer("Do you want to export Site and Content Rules? (y/n)", "Export Site and Content Rules", "y") = True Then
AddImportSiteContentRulesToScript
End If
If InputBoxAnswer("Do you want to export Web Proxy Settings? (y/n)", "Export Web Proxy Settings", "y") = True Then
AddImportWebProxyToScript
End If
If InputBoxAnswer("Do you want to export Web Publishing Rules? (y/n)", "Export Web Publishing Rules", "y") = True Then
AddImportWebPublishingRulesToScript
End If
If InputBoxAnswer("Do you want to export Server Publishing Rules? (y/n)", "Export Server Publishing Rules", "y") = True Then
AddImportServerPublishingRulesToScript
End If
End If

f.WriteLine "MsgBox ""ImportISASettings finished succesfully. You should restart your ISA services."""
MsgBox "Resulting import script ImportISASettings.vbs has been created. Run script on destination ISA server."
CloseScriptFile
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次