Freigeben über


FTP-Standardeinstellungen auf Site-Ebene <ftpServer>

Übersicht

Das <ftpServer> Element des <siteDefaults> Elements gibt die Standardeinstellungen für FTP-Features für alle FTP-Sites an.

In IIS 6.0 wurden die Einstellungen für den FTP-Dienst in einem separaten Abschnitt der Metabasis als Websites gespeichert. In IIS 7 und höher werden FTP-Einstellungen in der Datei ApplicationHost.config in denselben <site>-Elementen und <siteDefaults>-Elementen gespeichert, die die Einstellungen für Websites speichern. Aus diesem Grund können Einstellungen, die im <ftpServer>-Element angegeben sind, nicht delegiert werden, oder sie können in <location>-Elementen angegeben werden.

Hinweis

Zusätzliche FTP-Einstellungen werden im Abschnitt <system.ftpServer> der Datei ApplicationHost.config gespeichert, und diese Einstellungen werden innerhalb von <location>-Elementen angegeben.

Kompatibilität

Version Hinweise
(IIS 10.0 UND HÖHER) Das <ftpServer> Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <ftpServer> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <ftpServer> Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <ftpServer>-Element wird als Feature von IIS 7.5 ausgeliefert.
IIS 7.0 Das <ftpServer>-Element wurde in FTP 7.0 eingeführt, das ein separater Download für IIS 7.0 war.
IIS 6.0 Das <ftpServer>-Element und seine untergeordneten Elemente ersetzen die FTP-Einstellungen von IIS 6.0, die sich im Metabasispfad LM/MSFTPSVC befanden.

Hinweis

Die Dienste FTP 7.0 und FTP 7.5 wurden für IIS 7.0 out-of-band ausgeliefert. Dazu musste der Dienst von der folgenden URL heruntergeladen und installiert werden:

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

Bei Windows 7 und Windows Server 2008 R2 wird der FTP 7.5-Dienst als Feature für IIS 7.5 bereitgestellt, sodass das Herunterladen des FTP-Diensts nicht mehr erforderlich ist.

Setup

Um die FTP-Veröffentlichung für Ihren Webserver zu unterstützen, müssen Sie den FTP-Dienst installieren. Führen Sie dazu die folgenden Schritte aus:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.

  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.

  3. Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.

  4. Erweitern Sie auf der Seite Serverrollen den Eintrag Webserver (IIS), und wählen Sie dann FTP-Server aus.

    Hinweis

    Um die Authentifizierung mittels ASP-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie zusätzlich zu FTP-Dienst die Option FTP-Erweiterbarkeit auswählen.
    Screenshot of F T P Service and F T P Extensibility selected in a Windows Server 2012 interface. .

  5. Klicken Sie auf Weiter und wählen Sie dann auf der Seite Features auswählen erneut Weiter aus.

  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.

  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Starttaste und klicken Sie dann auf Systemsteuerung.

  2. Klicken Sie in der Systemsteuerungauf Programme und dann auf „Windows-Features aktivieren oder deaktivieren“.

  3. Erweitern Sie Internetinformationsdienste, und wählen Sie dann FTP-Server aus.

    Hinweis

    Zur Unterstützung der Authentifizierung für den FTP-Dienst durch ASP-Mitgliedschaft oder den IIS-Manager müssen Sie auch FTP-Erweiterbarkeit auswählen.
    Screenshot of F T P Service and F T P Extensibility selected in a Windows 8 interface.

  4. Klicken Sie auf OK.

  5. Klicken Sie auf Schließen.

Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.

  2. Erweitern Sie im Hierarchiebereich des Server-Managers die Rollenund klicken Sie dann auf den Webserver (IIS) .

  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.

  4. Erweitern Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten die Option FTP-Server.

  5. Wählen Sie FTP-Dienst aus.

    Hinweis

    Zur Unterstützung der Authentifizierung für den FTP-Dienst durch ASP-Mitgliedschaft oder den IIS-Manager müssen Sie auch FTP-Erweiterbarkeit auswählen.
    Screenshot of F T P Service and F T P Extensibility selected in a Windows Server 2008 interface.

  6. Klicken Sie auf Weiter.

  7. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.

  8. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 7

  1. Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.

  2. Klicken Sie in der Systemsteuerungauf Programmeund dann auf Windows-Features aktivieren oder deaktivieren.

  3. Erweitern Sie Internetinformationsdienste und dann FTP Server.

  4. Wählen Sie FTP-Dienst aus.

    Hinweis

    Zur Unterstützung der Authentifizierung für den FTP-Dienst durch ASP-Mitgliedschaft oder den IIS-Manager müssen Sie auch FTP-Erweiterbarkeit auswählen.
    Screenshot of F T P Service and F T P Extensibility selected in a Windows 7 interface.

  5. Klicken Sie auf OK.

Windows Server 2008 oder Windows Vista

  1. Laden Sie das Installationspaket von der folgenden URL herunter:

  2. Befolgen Sie die Anweisungen in der folgenden exemplarischen Vorgehensweise, um den FTP-Dienst zu installieren:

Gewusst wie

Aktivieren oder Deaktivieren der standardmäßigen Einstellungen für die anonyme FTP-Authentifizierung

  1. Öffnen Sie den Internet Information Services (IIS) Manager:

    • Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:

      • Klicken Sie der der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows 8 oder Windows 8.1 verwenden:

      • Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
      • Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Vista oder Windows 7 verwenden:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
  2. Klicken Sie im Bereich Verbindungen auf den Servernamen.

  3. Doppelklicken Sie im Bereich Start des Servers auf das Feature FTP-Authentifizierung.

  4. Wählen Sie auf der Seite FTP-Authentifizierung die Option Anonyme Authentifizierung aus.
    Screenshot of Anonymous Authentication selected in the F T P Authentication pane.

  5. Klicken Sie im Bereich Aktionen auf Aktivieren, um die anonyme Authentifizierung zu aktivieren, oder auf Deaktivieren, um die anonyme Authentifizierung zu deaktivieren.


Aktivieren oder Deaktivieren der standardmäßigen Einstellungen für die Standard-FTP-Authentifizierung

  1. Öffnen Sie den Internet Information Services (IIS) Manager:

    • Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:

      • Klicken Sie der der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows 8 oder Windows 8.1 verwenden:

      • Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
      • Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Vista oder Windows 7 verwenden:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
  2. Klicken Sie im Bereich Verbindungen auf den Servernamen.

  3. Doppelklicken Sie im Bereich Start des Servers auf das Feature FTP-Authentifizierung.

  4. Wählen Sie auf der Seite FTP-Authentifizierung die Option Standardauthentifizierung aus.
    Screenshot of Basic Authentication in the F T P Authentication pane.

  5. Klicken Sie im Bereich Aktionen auf Aktivieren, um die Standardauthentifizierung zu aktivieren, oder auf Deaktivieren, um die Standardauthentifizierung zu deaktivieren.

Konfiguration

Das Standardelement <ftpServer> wird auf der <siteDefaults> Ebene konfiguriert.

Attribute

Attribut Beschreibung
allowUTF8 Optionales Boolean -Attribut.

true, wenn UTF8 aktiviert ist; andernfalls false.

Der Standardwert ist true.
serverAutoStart Optionales Boolean -Attribut.

true, wenn IIS FTP-Sites automatisch starten soll, wenn der FTP-Dienst gestartet wird; andernfalls false.

Der Standardwert ist true.

Untergeordnete Elemente

Element Beschreibung
connections Optionales Element.

Gibt die standardverbindungsspezifischen Einstellungen für FTP-Sites an.
security Optionales Element.

Gibt die standardsicherheitsbezogenen Einstellungen für FTP-Sites an.
customFeatures Optionales Element.

Gibt die standardmäßiige Sammlung von benutzerdefinierten FTP-Anbietern an, die mithilfe der FTP-Erweiterbarkeit entwickelt wurden.
messages Optionales Element.

Gibt die standardverbindungsbezogenen Nachrichten an, die von FTP-Sites für FTP-Clients angezeit werden.
fileHandling Optionales Element.

Gibt die Standardeinstellungen für die Dateibehandlung für FTP-Sites an.
firewallSupport Optionales Element.

Gibt die Standardeinstellungen für FTP-Sites an, die für FTP-Verbindungen erforderlich sind, die über eine Firewall hergestellt werden.
userIsolation Optionales Element.

Gibt das standardmäßige Lookup-Verhalten des Startverzeichnisses für FTP-Verbindungen an. Benutzer können beispielsweise auf ein Startverzeichnis beschränkt werden, das auf ihrem Anmeldenamen basiert.
directoryBrowse Optionales Element.

Gibt die standardmäßigen Verzeichnisauflistungsoptionen für eine FTP-Site an. Diese Einstellungen wirken sich darauf aus, wie der FTP-Dienst Verzeichnisauflistungen für FTP-Clients anzeigt.
logFile Optionales Element.

Gibt die standardmäßigen Protokollierungsoptionen für FTP-Sites an.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel wird ein beispielhaftes <siteDefaults>-Element für einen Server angezeigt, der mehrere der FTP-Site-Standardwerte definiert.

<siteDefaults>
   <logFile logFormat="W3C" directory="%SystemDrive%\inetpub\logs\LogFiles" />
   <traceFailedRequestsLogging enabled="true" directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" />
   <ftpServer serverAutoStart="true">
      <connections controlChannelTimeout="300" />
      <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>
      <messages bannerMessage="Welcome!" allowLocalDetailedErrors="true" />
      <fileHandling keepPartialUploads="false" />
      <firewallSupport externalIp4Address="169.254.10.10" />
      <userIsolation mode="None" />
      <directoryBrowse showFlags="StyleUnix, DisplayAvailableBytes" />
      <logFile period="Daily" enabled="true" />
   </ftpServer>
</siteDefaults>

Beispielcode

Die folgenden Codebeispiele veranschaulichen das Festlegen mehrerer FTP-Site-Standardwerte.

AppCmd.exe

REM Configure FTP sites to start automatically by default.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.serverAutoStart:"True" /commit:apphost

REM Configure the default control channel time-out for 300 seconds.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.connections.controlChannelTimeout:"300" /commit:apphost

REM Configure the default FTP security options.
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

REM Configure a custom default banner message and local detailed error messages.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.messages.bannerMessage:"Welcome!" /siteDefaults.ftpServer.messages.allowLocalDetailedErrors:"True" /commit:apphost

REM Configure the FTP service to keep partially-uploaded files by default.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.fileHandling.keepPartialUploads:"False" /commit:apphost

REM Configure the default external IP address of a firewall.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.firewallSupport.externalIp4Address:"169.254.10.10" /commit:apphost

REM Specify no user isolation by default.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.userIsolation.mode:"None" /commit:apphost

REM Configure UNIX-style directory listings by default and display the available drive space.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.directoryBrowse.showFlags:"StyleUnix, DisplayAvailableBytes" /commit:apphost

REM Enable logging by default with daily log file rollover.
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.logFile.period:"Daily" /siteDefaults.ftpServer.logFile.enabled:"True" /commit:apphost

Hinweis

Sie müssen unbedingt den Commitparameterapphost festlegen, wenn Sie AppCmd.exe verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei ApplicationHost.config festgelegt.

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");

         // Configure FTP sites to start automatically by default.
         ftpServerElement["serverAutoStart"] = true;

         // Configure the default control channel time-out for 300 seconds.
         ConfigurationElement connectionsElement = ftpServerElement.GetChildElement("connections");
            connectionsElement["controlChannelTimeout"] = 300;

         // Configure the default FTP security options.
         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);

         // Configure a custom default banner message and local detailed error messages.
         ConfigurationElement messagesElement = ftpServerElement.GetChildElement("messages");
            messagesElement["bannerMessage"] = @"Welcome!";
            messagesElement["allowLocalDetailedErrors"] = true;

         // Configure the FTP service to keep partially-uploaded files by default.
         ConfigurationElement fileHandlingElement = ftpServerElement.GetChildElement("fileHandling");
           fileHandlingElement["keepPartialUploads"] = false;

         // Configure the default external IP address of a firewall.
         ConfigurationElement firewallSupportElement = ftpServerElement.GetChildElement("firewallSupport");
            firewallSupportElement["externalIp4Address"] = @"169.254.10.10";

         // Specify no user isolation by default.
         ConfigurationElement userIsolationElement = ftpServerElement.GetChildElement("userIsolation");
            userIsolationElement["mode"] = @"None";

         // Configure UNIX-style directory listings by default and display the available drive space.
         ConfigurationElement directoryBrowseElement = ftpServerElement.GetChildElement("directoryBrowse");
            directoryBrowseElement["showFlags"] = @"StyleUnix, DisplayAvailableBytes";

         // Enable logging by default with daily log file rollover.
         ConfigurationElement logFileElement = ftpServerElement.GetChildElement("logFile");
            logFileElement["period"] = @"Daily";
            logFileElement["enabled"] = true;

         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")

      ' Configure FTP sites to start automatically by default.
      ftpServerElement("serverAutoStart") = True

      ' Configure the default control channel time-out for 300 seconds.
      Dim connectionsElement As ConfigurationElement = ftpServerElement.GetChildElement("connections")
         connectionsElement("controlChannelTimeout") = 300

      ' Configure the default FTP security options.
      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)

      ' Configure a custom default banner message and local detailed error messages.
      Dim messagesElement As ConfigurationElement = ftpServerElement.GetChildElement("messages")
         messagesElement("bannerMessage") = "Welcome!"
         messagesElement("allowLocalDetailedErrors") = True

      ' Configure the FTP service to keep partially-uploaded files by default.
      Dim fileHandlingElement As ConfigurationElement = ftpServerElement.GetChildElement("fileHandling")
         fileHandlingElement("keepPartialUploads") = False

      ' Configure the default external IP address of a firewall.
      Dim firewallSupportElement As ConfigurationElement = ftpServerElement.GetChildElement("firewallSupport")
         firewallSupportElement("externalIp4Address") = "169.254.10.10"

      ' Specify no user isolation by default.
      Dim userIsolationElement As ConfigurationElement = ftpServerElement.GetChildElement("userIsolation")
         userIsolationElement("mode") = "None"

      ' Configure UNIX-style directory listings by default and display the available drive space.
      Dim directoryBrowseElement As ConfigurationElement = ftpServerElement.GetChildElement("directoryBrowse")
         directoryBrowseElement("showFlags") = "StyleUnix, DisplayAvailableBytes"

      ' Enable logging by default with daily log file rollover.
      Dim logFileElement As ConfigurationElement = ftpServerElement.GetChildElement("logFile")
         logFileElement("period") = "Daily"
         logFileElement("enabled") = True

      serverManager.CommitChanges()
   End Sub

End Module

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");

// Configure FTP sites to start automatically by default.
ftpServerElement.Properties.Item("serverAutoStart").Value = true;

// Configure the default control channel time-out for 300 seconds.
var connectionsElement = ftpServerElement.ChildElements.Item("connections");
   connectionsElement.Properties.Item("controlChannelTimeout").Value = 300;

// Configure the default FTP security options.
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);

// Configure a custom default banner message and local detailed error messages.
var messagesElement = ftpServerElement.ChildElements.Item("messages");
   messagesElement.Properties.Item("bannerMessage").Value = "Welcome!";
   messagesElement.Properties.Item("allowLocalDetailedErrors").Value = true;

// Configure the FTP service to keep partially-uploaded files by default.
var fileHandlingElement = ftpServerElement.ChildElements.Item("fileHandling");
   fileHandlingElement.Properties.Item("keepPartialUploads").Value = false;

// Configure the default external IP address of a firewall.
var firewallSupportElement = ftpServerElement.ChildElements.Item("firewallSupport");
   firewallSupportElement.Properties.Item("externalIp4Address").Value = "169.254.10.10";

// Specify no user isolation by default.
var userIsolationElement = ftpServerElement.ChildElements.Item("userIsolation");
   userIsolationElement.Properties.Item("mode").Value = "None";

// Configure UNIX-style directory listings by default and display the available drive space.
var directoryBrowseElement = ftpServerElement.ChildElements.Item("directoryBrowse");
   directoryBrowseElement.Properties.Item("showFlags").Value = "StyleUnix, DisplayAvailableBytes";

// Enable logging by default with daily log file rollover.
var logFileElement = ftpServerElement.ChildElements.Item("logFile");
   logFileElement.Properties.Item("period").Value = "Daily";
   logFileElement.Properties.Item("enabled").Value = true;

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")

' Configure FTP sites to start automatically by default.
ftpServerElement.Properties.Item("serverAutoStart").Value = True

' Configure the default control channel time-out for 300 seconds.
Set connectionsElement = ftpServerElement.ChildElements.Item("connections")
   connectionsElement.Properties.Item("controlChannelTimeout").Value = 300

' Configure the default FTP security options.
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)

' Configure a custom default banner message and local detailed error messages.
Set messagesElement = ftpServerElement.ChildElements.Item("messages")
   messagesElement.Properties.Item("bannerMessage").Value = "Welcome!"
   messagesElement.Properties.Item("allowLocalDetailedErrors").Value = True

' Configure the FTP service to keep partially-uploaded files by default.
Set fileHandlingElement = ftpServerElement.ChildElements.Item("fileHandling")
   fileHandlingElement.Properties.Item("keepPartialUploads").Value = False

' Configure the default external IP address of a firewall.
Set firewallSupportElement = ftpServerElement.ChildElements.Item("firewallSupport")
   firewallSupportElement.Properties.Item("externalIp4Address").Value = "169.254.10.10"

' Specify no user isolation by default.
Set userIsolationElement = ftpServerElement.ChildElements.Item("userIsolation")
   userIsolationElement.Properties.Item("mode").Value = "None"

' Configure UNIX-style directory listings by default and display the available drive space.
Set directoryBrowseElement = ftpServerElement.ChildElements.Item("directoryBrowse")
   directoryBrowseElement.Properties.Item("showFlags").Value = "StyleUnix, DisplayAvailableBytes"

' Enable logging by default with daily log file rollover.
Set logFileElement = ftpServerElement.ChildElements.Item("logFile")
   logFileElement.Properties.Item("period").Value = "Daily"
   logFileElement.Properties.Item("enabled").Value = True

adminManager.CommitChanges()