Skip to content

Instantly share code, notes, and snippets.

@jonlabelle
Created April 17, 2014 21:41

Revisions

  1. jonlabelle created this gist Apr 17, 2014.
    115 changes: 115 additions & 0 deletions iis7_command_line_tool.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,115 @@
    IIS 7 Command Line Tool
    =======================

    `AppCmd.exe` IIS 7 command-line tool used to perform common IIS administrative tasks such as creating new sites, stopping/starting services, and viewing status of the site.


    ## Usage

    appcmd (command) (object-type) <identifier> </parameter1:value1 ...>

    In order to run `AppCmd.exe`, you will either need to change directory into `%windir%\system32\inetsrv\` or add it to your `PATH` variable. On a *Windows 2008* server with a default installation, `AppCmd.exe` is located in `C:\Windows\System32\inetsrv`.

    **Supported object types**:

    - `SITE` Administration of virtual sites
    - `APP` Administration of applications
    - `VDIR` Administration of virtual directories
    - `APPPOOL` Administration of application pools
    - `CONFIG` Administration of general configuration sections
    - `WP` Administration of worker processes
    - `REQUEST` Administration of HTTP requests
    - `MODULE` Administration of server modules
    - `BACKUP` Administration of server configuration backups
    - `TRACE` Working with failed request trace logs

    **General parameters**:

    /? Display context-sensitive help message.

    /text<:value> Generate output in text format (default).
    /text:* shows all object properties in detail view.
    /text:<attribute> shows the value of the specified
    attribute for each object.

    /xml Generate output in XML format.
    Use this to produce output that can be sent to another
    command running in /in mode.

    /in or - Read and operate on XML input from standard input.
    Use this to operate on input produced by another
    command running in /xml mode.

    /config<:*> Show configuration for displayed objects.
    /config:* also includes inherited configuration.

    /metadata Show configuration metadata when displaying configuration.

    /commit Set config path where configuration changes are saved.
    Can specify either a specific configuration path, "site",
    "app", "parent", or "url" to save to the appropriate portion
    of the path being edited by the command, "apphost", "webroot",
    or "machine" for the corresponding configuration level.

    /debug Show debugging information for command execution.

    > Use `!` to escape parameters that have same names as the general parameters, like `/!debug:value` to set a config property named `debug`.

    ## Examples

    ### List

    List all sites:

    appcmd list sites

    List started sites:

    appcmd list sites /state:started

    List stopped sites:

    appcmd list sites /state:stopped

    List unknown sites:

    appcmd list sites /state:stopped

    ### Start and Stop

    Start a site:

    appcmd start sites "Default Web Site"

    Stop a site:

    appcmd stop sites "Default Web Site"

    ### Add

    appcmd add site /name:mywebsite /id:99 /bindings:http/*:81: /physicalPath:C:\mywebsite

    ### Configuration

    List all backup configurations:

    appcmd list backup

    Show site configuration:

    appcmd list site "Default Web Site" /config

    ---

    **Author**

    - Jon LaBelle, <[email protected]>


    **Resources**

    - [Appcmd.exe (IIS 7)](http://technet.microsoft.com/en-us/library/cc772200.aspx)
    - [Getting Started with AppCmd.exe](http://learn.iis.net/page.aspx/114/getting-started-with-appcmdexe/)
    - [Configuring IIS 7 from the command line using Appcmd.exe (Part 1)](http://www.windowsnetworking.com/articles-tutorials/windows-server-2008/Configuring-IIS-7-command-line-Appcmdexe-Part1.html)
    - [How to use the Appcmd.exe command-line tool](http://support.microsoft.com/kb/930909)