共用方式為


預設 FTP 安全性設定 < 安全性>

概觀

元素 <security> 會定義 FTP 月臺安全性選項的父元素,並包含下列子項目,其會以階層方式顯示:

  • <authentication> - 這個子專案是 FTP 月臺各種驗證設定的父元素,且包含下列子項目:

    • <anonymousAuthentication> - 指定匿名存取的設定。 這種形式的驗證允許存取您的伺服器或網域上沒有使用者帳戶的 FTP 網站,而且最常用於公用 FTP 網站
    • <basicAuthentication> - 指定基本驗證的設定。 這種形式的驗證需要伺服器或網域上的有效使用者帳戶,使用者才能登入。
    • <clientCertAuthentication> - 指定是否啟用 Active Directory 用戶端憑證驗證。 這種形式的驗證會使用用戶端憑證來驗證 FTP 用戶端。
    • <customAuthentication> - 指定自訂驗證的設定。 這種形式的驗證會使用自訂驗證提供者來驗證使用者名稱和密碼。
  • <commandFiltering> - 指定 FTP 命令篩選的設定。 此集合可讓您個別允許或拒絕 FTP 服務的特定 FTP 命令。

  • <customAuthorization> - 指定自訂授權的設定。 此形式的授權會使用內建授權提供者或自訂授權提供者來驗證使用者存取權。

  • <dataChannelSecurity> - 指定 FTP 資料通道安全性的設定。 此安全性功能會強制執行會話的資料和控制通道必須具有相符的用戶端位址。

  • <ssl> - 指定 FTP 月臺的安全通訊端層 (SSL) 設定。

  • <sslClientCertificates> - 指定 FTP 月臺的安全通訊端層 (SSL) 用戶端憑證設定。

相容性

版本 備註
IIS 10.0 <security> IIS 10.0 中未修改專案。
IIS 8.5 <security> 在 IIS 8.5 中修改專案。
IIS 8.0 在 IIS 8.0 中未修改專案 <security>
IIS 7.5 元素 <security><ftpServer> 元素會隨附為 IIS 7.5 的功能。
IIS 7.0 元素 <security><ftpServer> 元素是在 FTP 7.0 中引進,這是 IIS 7.0 的個別下載。
IIS 6.0 元素 <ftpServer> 及其子項目會取代位於 LM/MSFTPSVC 中繼基底路徑中的 IIS 6.0 FTP 設定。

注意

FTP 7.0 和 FTP 7.5 服務針對 IIS 7.0 隨附頻外,需要從下列 URL 下載並安裝模組:

https://www.iis.net/expand/FTP

使用 Windows 7 和 Windows Server 2008 R2 時,FTP 7.5 服務會隨附為 IIS 7.5 的功能,因此不再需要下載 FTP 服務。

安裝程式

若要支援 Web 服務器的 FTP 發佈,您必須安裝 FTP 服務。 若要這樣做,請使用下列步驟。

Windows Server 2012 或 Windows Server 2012 R2

  1. 在工作列上,按一下 [伺服器管理員]

  2. 伺服器管理員中,按一下 [管理]功能表,然後按一下 [新增角色和功能]。

  3. 在 [ 新增角色和功能 精靈] 中,按 [下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。

  4. 在 [ 伺服器角色] 頁面上,展開 [Web 服務器] ([IIS) ],然後選取 [ FTP 伺服器]。

    注意

    支援 ASP。FTP 服務的成員資格驗證或 IIS 管理員驗證,除了FTP 服務之外,您還需要選取FTP 擴充性
    顯示 Windows Server 2012 中已選取 F T P 擴充性的螢幕擷取畫面。 .

  5. [下一步],然後在 [ 選取功能 ] 頁面上,再次按 [ 下一步 ]。

  6. 在 [確認安裝選項] 頁面上,按一下 [安裝]

  7. 在 [結果] 頁面上,按一下 [關閉]

Windows 8 或Windows 8.1

  1. 在 [開始] 畫面上,將指標全部移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。

  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。

  3. 展開 [Internet Information Services],然後選取 [FTP 伺服器]。

    注意

    支援 ASP。FTP 服務的成員資格驗證或 IIS 管理員驗證,您也必須選取 [FTP 擴充性]。
    顯示 Windows 8 中已選取 F T P 擴充性的螢幕擷取畫面。

  4. 按一下 [確定]。

  5. 按一下 [關閉] 。

Windows Server 2008 R2

  1. 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。

  2. [伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS)

  3. [Web 服務器 (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。

  4. 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,展開[FTP 伺服器]。

  5. 選取 [FTP 服務]。

    注意

    支援 ASP。FTP 服務的成員資格驗證或 IIS 管理員驗證,您也必須選取 [FTP 擴充性]。
    顯示已選取 FTP 服務的螢幕擷取畫面。

  6. 按一下 [下一步] 。

  7. 在 [確認安裝選項] 頁面上,按一下 [安裝]

  8. 在 [結果] 頁面上,按一下 [關閉]

Windows 7

  1. 在工作列上,按一下 [開始],然後按一下[主控台]。

  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。

  3. 展開 [Internet Information Services],然後展開 [FTP 伺服器]。

  4. 選取 [FTP 服務]。

    注意

    支援 ASP。FTP 服務的成員資格驗證或 IIS 管理員驗證,您也必須選取 [FTP 擴充性]。
    顯示 Windows 7 中已選取 FTP 擴充性的螢幕擷取畫面。

  5. 按一下 [確定]。

Windows Server 2008 或 Windows Vista

  1. 從下列 URL 下載安裝套件:

  2. 請遵循下列逐步解說中的指示來安裝 FTP 服務:

作法

如何啟用或停用 FTP 網站的匿名驗證

  1. (IIS) 管理員開啟 Internet Information Services

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
  2. 在 [ 連線 ] 窗格中,展開伺服器名稱、展開 [月臺] 節點,然後按一下月臺的名稱。

  3. 在網站的 [ 首頁] 窗格中,按兩下 [FTP 驗證 ] 功能。

  4. 在 [ FTP 驗證] 頁面上,選取 [匿名驗證]。

  5. 在 [ 動作] 窗格中,按一下 [ 啟用 ] 以啟用匿名驗證,或按一下 [ 停用 ] 以停用匿名驗證。
    顯示 [FTP 驗證] 頁面的螢幕擷取畫面。匿名驗證已醒目提示。


如何使用 FTP 網站精靈建立具有匿名讀取存取的 FTP 網站

  1. (IIS) 管理員開啟 Internet Information Services

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
  2. 在 [ 連線 ] 窗格中,按一下樹狀結構中的 [月臺] 節點。

  3. 以滑鼠右鍵按一下樹狀結構中的[月臺]節點,然後按一下 [新增 FTP 站台],或按一下 [動作] 窗格中的 [新增 FTP 站台]。

  4. 當 [ 新增 FTP 站 台精靈] 出現時:

    • [FTP 網站名稱 ] 方塊中輸入 「我的新 FTP 網站」。

    • 針對 [實體路徑 ] 方塊,您可以使用下列其中一個選項來指定內容目錄:

      • 按一下省略號 (...) 按鈕,然後流覽至包含 FTP 網站內容的資料夾。
      • 在方塊中輸入內容資料夾的路徑。 請注意,如果您選擇輸入路徑,您可以在路徑中使用環境變數。 例如,您可以針對內容目錄使用 「%SystemDrive%\inetpub\ftproot」。
    • 當您完成這些專案之後,請按 [下一步]。
      顯示 [新增 FTP 網站] 的螢幕擷取畫面。顯示網站資訊。

  5. [新增 FTP 站 台精靈] 的第二個頁面上:

    • 從 [IP 位址] 下拉式清單中選擇 FTP 網站的 IP 位址 ,或選擇接受 [所有未指派] 的預設選取專案。

    • 在 [ ] 方塊中輸入 FTP 網站的 TCP/IP 埠。 根據預設,FTP 月臺和用戶端會使用埠 21。 (注意:若要指定隱含 FTPS,您必須使用埠 990.)

    • 若要使用 FTP 虛擬主機名稱,請選取 [ 啟用虛擬主機名稱] 的方塊,然後在 [ 虛擬主機 ] 方塊中輸入虛擬主機名稱。

    • 針對 SSL 選項,請選擇下列其中一個選項:

      • 選取 [無 SSL ] 以停用 SSL 選項。
      • 選取 [允許 SSL ] 以允許 FTP 用戶端在與 FTP 伺服器連線時選擇性地使用 FTP over SSL。
      • 選取 [要求 SSL ] 以允許 FTP 用戶端在與 FTP 伺服器連線時一律使用 FTP over SSL。
      • 如果您選擇 [允許 SSL ] 或 [ 需要 SSL],請從 [ SSL 憑證 ] 下拉式功能表中選擇憑證。
    • 當您完成這些專案之後,請按 [下一步]。
      顯示 [新增 FTP 網站] 的螢幕擷取畫面。會顯示系結和 SSL 設定。

  6. 在精靈的下一頁:

    • 針對[驗證] 設定選取 [匿名]。
    • 針對 [授權 設定],從 [ 允許存取] 下拉式清單中選擇 [匿名使用者]。
    • 針對 [許可權]選項選取[讀取]。
    • 當您完成這些專案時,請按一下 [ 完成]。
      顯示 [新增 FTP 網站] 的螢幕擷取畫面。[驗證] 和 [授權設定] 底下已選取 [匿名]。

如何啟用或停用 FTP 月臺的基本驗證

  1. (IIS) 管理員開啟 Internet Information Services

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
  2. 在 [ 連線 ] 窗格中,展開伺服器名稱、展開 [月臺] 節點,然後按一下月臺的名稱。

  3. 在網站的 [ 首頁] 窗格中,按兩下 [FTP 驗證 ] 功能。

  4. 在 [ FTP 驗證] 頁面上,選取 [基本驗證]。
    顯示 [FTP 驗證] 頁面的螢幕擷取畫面。

  5. 在 [ 動作] 窗格中,按一下 [ 啟用 ] 以啟用基本驗證,或按一下 [ 停用 ] 以停用基本驗證。


如何使用 FTP 月臺精靈建立具有基本驗證和讀取/寫入存取權的 FTP 網站

  1. (IIS) 管理員開啟 Internet Information Services

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
  2. 在 [ 連線 ] 窗格中,按一下樹狀結構中的 [月臺] 節點。

  3. 以滑鼠右鍵按一下樹狀結構中的[月臺]節點,然後按一下 [新增 FTP 站台],或按一下 [動作] 窗格中的 [新增 FTP 站台]。

  4. 當 [ 新增 FTP 站 台精靈] 出現時:

    • [FTP 網站名稱 ] 方塊中輸入 「我的新 FTP 網站」。

    • 針對 [實體路徑 ] 方塊,您可以使用下列其中一個選項來指定內容目錄:

      • 按一下省略號 (...) 按鈕,然後流覽至包含 FTP 網站內容的資料夾。
      • 在方塊中輸入內容資料夾的路徑。 請注意,如果您選擇輸入路徑,您可以在路徑中使用環境變數。 例如,您可以針對內容目錄使用 「%SystemDrive%\inetpub\ftproot」。
    • 當您完成這些專案之後,請按 [下一步]。
      顯示 [新增 FTP 網站精靈] 的螢幕擷取畫面。

  5. [新增 FTP 站 台精靈] 的第二個頁面上:

    • 從 [IP 位址] 下拉式清單中選擇 FTP 網站的 IP 位址 ,或選擇接受 [所有未指派] 的預設選取專案。

    • 在 [ ] 方塊中輸入 FTP 網站的 TCP/IP 埠。 根據預設,FTP 月臺和用戶端會使用埠 21。 (注意:若要指定隱含 FTPS,您必須使用埠 990.)

    • 若要使用 FTP 虛擬主機名稱,請選取 [ 啟用虛擬主機名稱] 的方塊,然後在 [ 虛擬主機 ] 方塊中輸入虛擬主機名稱。

    • 針對 SSL 選項,請選擇下列其中一個選項:

      • 選取 [無 SSL ] 以停用 SSL 選項。
      • 選取 [允許 SSL ] 以允許 FTP 用戶端在與 FTP 伺服器連線時選擇性地使用 FTP over SSL。
      • 選取 [要求 SSL ] 以允許 FTP 用戶端在與 FTP 伺服器連線時一律使用 FTP over SSL。
      • 如果您選擇 [允許 SSL ] 或 [ 需要 SSL],請從 [ SSL 憑證 ] 下拉式功能表中選擇憑證。
    • 當您完成這些專案之後,請按 [下一步]。
      顯示 [新增 FTP 網站精靈] 的螢幕擷取畫面。會顯示系結和 SSL 設定。

  6. 在精靈的下一頁:

    • 針對[驗證設定] 選取 [基本]。
    • 針對 [授權 設定],從 [ 允許存取] 下拉式清單中選擇 [指定使用者],然後在下拉式功能表下方的方塊中輸入帳戶名稱。
    • 針對 [許可權]選項選取[讀取] 和 [寫入]。
    • 當您完成這些專案時,請按一下 [ 完成]。
      顯示 [新增 FTP 網站] 的螢幕擷取畫面。[驗證和授權] 底下已選取 [基本]。

組態

屬性

無。

子元素

元素 描述
authentication 選擇性項目。

指定 FTP 網站的驗證設定。
commandFiltering 選擇性項目。

指定 FTP 命令篩選的設定。
dataChannelSecurity 選擇性項目。

指定 FTP 資料通道安全性的設定。
ssl 選擇性項目。

指定 FTP 網站的 SSL 設定。
sslClientCertificates 選擇性項目。

指定 FTP 月臺的 SSL 用戶端憑證選項。

組態範例

下列組態範例會顯示定義數個 FTP 安全性月臺預設值之伺服器的範例 <security> 元素。

<siteDefaults>
   <ftpServer>
      <security>
         <commandFiltering>
            <add command="SYST" allowed="false" />
         </commandFiltering>
         <ssl serverCertHash="57686f6120447564652c2049495320526f636b73" controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
         <sslClientCertificates clientCertificatePolicy="CertIgnore" />
         <authentication>
             <anonymousAuthentication enabled="false" />
             <basicAuthentication enabled="false" />
             <clientCertAuthentication enabled="false" />
             <customAuthentication>
                <providers>
                   <add name="FtpCustomAuthenticationModule" enabled="false" />
                </providers>
             </customAuthentication>
         </authentication>
      </security>
   </ftpServer>
</siteDefaults>

範例程式碼

下列程式碼範例說明設定數個 FTP 網站預設值。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/sites /+"siteDefaults.ftpServer.security.commandFiltering.[command='SYST',allowed='False']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.ssl.controlChannelPolicy:"SslAllow" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.ssl.dataChannelPolicy:"SslAllow" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.ssl.serverCertHash:"57686f6120447564652c2049495320526f636b73" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.authentication.anonymousAuthentication.enabled:"False" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.authentication.basicAuthentication.enabled:"False" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.authentication.clientCertAuthentication.enabled:"False" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.sslClientCertificates.clientCertificatePolicy:"CertIgnore" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /+"siteDefaults.ftpServer.security.authentication.customAuthentication.providers.[name='FtpCustomAuthenticationModule',enabled='False']" /commit:apphost

注意

當您使用AppCmd.exe設定這些設定時,請務必將 認可 參數 apphost 設定為 。 這會將組態設定認可至ApplicationHost.config檔案中適當的位置區段。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
         ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");
         ConfigurationElement ftpServerElement = siteDefaultsElement.GetChildElement("ftpServer");

         ConfigurationElement securityElement = ftpServerElement.GetChildElement("security");
         ConfigurationElement commandFilteringElement = securityElement.GetChildElement("commandFiltering");
         ConfigurationElementCollection commandFilteringCollection = commandFilteringElement.GetCollection();
         ConfigurationElement addElement = commandFilteringCollection.CreateElement("add");
            addElement["command"] = @"SYST";
            addElement["allowed"] = false;
            commandFilteringCollection.Add(addElement);
         ConfigurationElement sslElement = securityElement.GetChildElement("ssl");
            sslElement["controlChannelPolicy"] = @"SslAllow";
            sslElement["dataChannelPolicy"] = @"SslAllow";
            sslElement["serverCertHash"] = "57686f6120447564652c2049495320526f636b73";
         ConfigurationElement authenticationElement = securityElement.GetChildElement("authentication");
         ConfigurationElement anonymousAuthenticationElement = authenticationElement.GetChildElement("anonymousAuthentication");
            anonymousAuthenticationElement["enabled"] = false;
         ConfigurationElement basicAuthenticationElement = authenticationElement.GetChildElement("basicAuthentication");
            basicAuthenticationElement["enabled"] = false;
         ConfigurationElement clientCertAuthenticationElement = authenticationElement.GetChildElement("clientCertAuthentication");
            clientCertAuthenticationElement["enabled"] = false;
         ConfigurationElement sslClientCertificatesElement = securityElement.GetChildElement("sslClientCertificates");
            sslClientCertificatesElement["clientCertificatePolicy"] = @"CertIgnore";
         ConfigurationElement customAuthenticationElement = authenticationElement.GetChildElement("customAuthentication");
         ConfigurationElementCollection providersCollection = customAuthenticationElement.GetCollection("providers");
         ConfigurationElement addElement1 = providersCollection.CreateElement("add");
            addElement1["name"] = @"FtpCustomAuthenticationModule";
            addElement1["enabled"] = false;
            providersCollection.Add(addElement1);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
      Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")
      Dim ftpServerElement As ConfigurationElement = siteDefaultsElement.GetChildElement("ftpServer")

      Dim securityElement As ConfigurationElement = ftpServerElement.GetChildElement("security")
      Dim commandFilteringElement As ConfigurationElement = securityElement.GetChildElement("commandFiltering")
      Dim commandFilteringCollection As ConfigurationElementCollection = commandFilteringElement.GetCollection
      Dim addElement As ConfigurationElement = commandFilteringCollection.CreateElement("add")
         addElement("command") = "SYST"
         addElement("allowed") = False
         commandFilteringCollection.Add(addElement)
      Dim sslElement As ConfigurationElement = securityElement.GetChildElement("ssl")
         sslElement("controlChannelPolicy") = "SslAllow"
         sslElement("dataChannelPolicy") = "SslAllow"
         sslElement("serverCertHash") = "57686f6120447564652c2049495320526f636b73"
      Dim authenticationElement As ConfigurationElement = securityElement.GetChildElement("authentication")
      Dim anonymousAuthenticationElement As ConfigurationElement = authenticationElement.GetChildElement("anonymousAuthentication")
         anonymousAuthenticationElement("enabled") = False
      Dim basicAuthenticationElement As ConfigurationElement = authenticationElement.GetChildElement("basicAuthentication")
         basicAuthenticationElement("enabled") = False
      Dim clientCertAuthenticationElement As ConfigurationElement = authenticationElement.GetChildElement("clientCertAuthentication")
         clientCertAuthenticationElement("enabled") = False
      Dim sslClientCertificatesElement As ConfigurationElement = securityElement.GetChildElement("sslClientCertificates")
         sslClientCertificatesElement("clientCertificatePolicy") = "CertIgnore"
      Dim customAuthenticationElement As ConfigurationElement = authenticationElement.GetChildElement("customAuthentication")
      Dim providersCollection As ConfigurationElementCollection = customAuthenticationElement.GetCollection("providers")
      Dim addElement1 As ConfigurationElement = providersCollection.CreateElement("add")
         addElement1("name") = "FtpCustomAuthenticationModule"
         addElement1("enabled") = False
         providersCollection.Add(addElement1)

      serverManager.CommitChanges()
   End Sub

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");
var ftpServerElement = siteDefaultsElement.ChildElements.Item("ftpServer");

var securityElement = ftpServerElement.ChildElements.Item("security");
var commandFilteringElement = securityElement.ChildElements.Item("commandFiltering");
var commandFilteringCollection = commandFilteringElement.Collection;
var addElement = commandFilteringCollection.CreateNewElement("add");
   addElement.Properties.Item("command").Value = "SYST";
   addElement.Properties.Item("allowed").Value = false;
   commandFilteringCollection.AddElement(addElement);
var sslElement = securityElement.ChildElements.Item("ssl");
   sslElement.Properties.Item("controlChannelPolicy").Value = "SslAllow";
   sslElement.Properties.Item("dataChannelPolicy").Value = "SslAllow";
   sslElement.Properties.Item("serverCertHash").Value = "57686f6120447564652c2049495320526f636b73";
var authenticationElement = securityElement.ChildElements.Item("authentication");
var anonymousAuthenticationElement = authenticationElement.ChildElements.Item("anonymousAuthentication");
   anonymousAuthenticationElement.Properties.Item("enabled").Value = false;
var basicAuthenticationElement = authenticationElement.ChildElements.Item("basicAuthentication");
   basicAuthenticationElement.Properties.Item("enabled").Value = false;
var clientCertAuthenticationElement = authenticationElement.ChildElements.Item("clientCertAuthentication");
   clientCertAuthenticationElement.Properties.Item("enabled").Value = false;
var sslClientCertificatesElement = securityElement.ChildElements.Item("sslClientCertificates");
    sslClientCertificatesElement.Properties.Item("clientCertificatePolicy").Value = "CertIgnore";
var customAuthenticationElement = authenticationElement.ChildElements.Item("customAuthentication");
var providersCollection = customAuthenticationElement.ChildElements.Item("providers").Collection;
var addElement1 = providersCollection.CreateNewElement("add");
   addElement1.Properties.Item("name").Value = "FtpCustomAuthenticationModule";
   addElement1.Properties.Item("enabled").Value = false;
   providersCollection.AddElement(addElement1);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")
Set ftpServerElement = siteDefaultsElement.ChildElements.Item("ftpServer")

Set securityElement = ftpServerElement.ChildElements.Item("security")
Set commandFilteringElement = securityElement.ChildElements.Item("commandFiltering")
Set commandFilteringCollection = commandFilteringElement.Collection
Set addElement = commandFilteringCollection.CreateNewElement("add")
   addElement.Properties.Item("command").Value = "SYST"
   addElement.Properties.Item("allowed").Value = False
   commandFilteringCollection.AddElement(addElement)
Set sslElement = securityElement.ChildElements.Item("ssl")
   sslElement.Properties.Item("controlChannelPolicy").Value = "SslAllow"
   sslElement.Properties.Item("dataChannelPolicy").Value = "SslAllow"
   sslElement.Properties.Item("serverCertHash").Value = "57686f6120447564652c2049495320526f636b73"
Set authenticationElement = securityElement.ChildElements.Item("authentication")
Set anonymousAuthenticationElement = authenticationElement.ChildElements.Item("anonymousAuthentication")
   anonymousAuthenticationElement.Properties.Item("enabled").Value = False
Set basicAuthenticationElement = authenticationElement.ChildElements.Item("basicAuthentication")
   basicAuthenticationElement.Properties.Item("enabled").Value = False
Set clientCertAuthenticationElement = authenticationElement.ChildElements.Item("clientCertAuthentication")
   clientCertAuthenticationElement.Properties.Item("enabled").Value = False
Set sslClientCertificatesElement = securityElement.ChildElements.Item("sslClientCertificates")
   sslClientCertificatesElement.Properties.Item("clientCertificatePolicy").Value = "CertIgnore"
Set customAuthenticationElement = authenticationElement.ChildElements.Item("customAuthentication")
Set providersCollection = customAuthenticationElement.ChildElements.Item("providers").Collection
Set addElement1 = providersCollection.CreateNewElement("add")
   addElement1.Properties.Item("name").Value = "FtpCustomAuthenticationModule"
   addElement1.Properties.Item("enabled").Value = False
   providersCollection.AddElement(addElement1)

adminManager.CommitChanges()