在鏈結下傳串流的 ISA Server 電腦上停用名稱解析

發佈日期: 2004 年 6 月 16 日

在一個具鏈結的正向 Proxy 案例中,有下傳串流的 Microsoft® Internet Security and Acceleration (ISA) Server 電腦可藉由在 FPCWebProxy 物件上設定 SkipNameResolutionForAccessAndRoutingRules 屬性為 True 的方式,傳送出不需執行名稱解析便能命令 DNS 直接查閱上傳串流電腦的要求。在該屬性設定為 True 時,當 ISA Server Web proxy 在檢查存取和路由規則時,會跳過名稱解析。在 SkipNameResolution.vbs 中的 Microsoft Visual Basic® Scripting Edition (VBScript) 程式碼將這個屬性設定為 True,並將新組態設定儲存在持續存放檔。

至於其他對低階設定的改變,當 SkipNameResolutionForAccessAndRoutingRules 屬性的值改變後,同時也藉由呼叫 Save 方法來儲存改變,這時必須重新啟動 Microsoft 防火牆服務以使改變生效。若使用的程式碼是來自於執行多重組態改變的指令碼時,建議所有組態都做改變,然後將所有改變套用到使用單一呼叫 Save 方法的物件上,而該物件包括了將組態變更作為子物件的其他物件。可藉由使用下列方式之一重新啟動所需的服務,以套用所有未經儲存的改變:

  • 在包含所有其他組態變更都作為子物件的物件上,以呼叫 Save 方法,將 fResetRequiredServicesfReloadConfiguration 兩個參數都設定為 True

  • 在包含所有其他物件的組態改變都作為子物件的物件上,以 fResetRequiredServices 參數的預設值 (False) 和 fReloadConfiguration 參數的預設值 (True) 呼叫 Save 方法,接著再呼叫 FPCArray 物件的 RestartServices 方法。在呼叫 RestartServices 方法前,應先在適用的物件上呼叫 GetServiceRestartMask 方法,以獲得所需的位元遮罩來設定 RestartServices 方法中的 Services 參數。

這個指令碼使用較新的技術,但首先使用的技術必須藉由呼叫 Save 方法並設定 fResetRequiredServices 參數為 True,以及刪除對 GetServiceRestartMaskRestartServices 方法呼叫的方式完成。

使用方式:
SkipNameResolution.vbs

在鏈結下傳串流 ISA Server 電腦上停用名稱解析

  1. 建立一個 FPC COM 物件執行個體,以提供對其他 ISA Server 管理 COM 物件的存取。

  2. 宣告一個 FPCArray 物件、一個 FPCWebProxy 物件和一個 32 位元位元遮罩型式的 FpcServices

  3. 取得參考給現有的 FPCArray 物件和 FPCWebProxy 物件。

  4. 當檢查存取和路由規則時,可藉由將 Web Proxy 物件的 SkipNameResolutionForAccessAndRoutingRules 屬性為 True 來設定 Web Proxy 跳過名稱解析。

  5. 呼叫在 Web Proxy 物件中的 Save,同時預設參數值會將新的組態設定寫入持續存放檔中。

  6. 呼叫 Web Proxy 物件的 GetServiceRestartMask 以獲得所需的位元遮罩來設定 RestartServices 方法的 Services 參數。

  7. 在陣列物件中呼叫 RestartServices 以讓變更生效。

Script Listing:SkipNameResolution.vbs

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright (c) Microsoft Corporation. All rights reserved.
' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE 
' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE 
' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS 
' HEREBY PERMITTED.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' This script sets the SkipNameResolutionForAccessAndRoutingRules property of
' the FPCWebProxy object to True, saves the new configuration setting to 
' persistent storage, and restarts the Firewall service.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub SkipNameResolution()

    ' 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 webProxy     ' An FPCWebProxy object
    Dim restartMask  ' A 32-bit bitmask of type FpcServices

    ' Get references to the array object
    ' and the Web proxy object. 
    Set isaArray = root.GetContainingArray()
    set webProxy = isaArray.ArrayPolicy.WebProxy

    ' Configure the Web proxy to skip name resolution
    ' while checking access and routing rules and save
    ' the new configuration. 
    webProxy.SkipNameResolutionForAccessAndRoutingRules = True
    restartMask = webProxy.GetServiceRestartMask
    webProxy.Save

    ' Restart the Firewall service so that
    ' the change will take effect.
    isaArray.RestartServices restartMask

End Sub

SkipNameResolution
顯示: