# salt.states.win_iis

Microsoft IIS site management

This module provides the ability to add/remove websites and application pools from Microsoft IIS.

New in version 2016.3.0.

salt.states.win_iis.container_setting(name, container, settings=None)

  Set the value of the setting for an IIS container.

  Parameters:

    - name (str) -- The name of the IIS container.

    - container (str) -- The type of IIS container. The container types are: AppPools, Sites, SslBindings

    - settings (str) -- A dictionary of the setting names and their values. Example of usage for the `AppPools` container:

      site0-apppool-setting:
          win_iis.container_setting:
              - name: site0
              - container: AppPools
              - settings:
                  managedPipelineMode: Integrated
                  processModel.maxProcesses: 1
                  processModel.userName: TestUser
                  processModel.password: TestPassword
                  processModel.identityType: SpecificUser

  Example of usage for the `Sites` container:

      site0-site-setting:
          win_iis.container_setting:
              - name: site0
              - container: Sites
              - settings:
                  logFile.logFormat: W3C
                  logFile.period: Daily
                  limits.maxUrlSegments: 32

salt.states.win_iis.create_app(name, site, sourcepath, apppool=None)

  Create an IIS application.

  Parameters:

    - name (str) -- The IIS application.

    - site (str) -- The IIS site name.

    - sourcepath (str) -- The physical path.

    - apppool (str) -- The name of the IIS application pool.

  Example of usage with only the required arguments:

      site0-v1-app:
          win_iis.create_app:
              - name: v1
              - site: site0
              - sourcepath: C:\inetpub\site0\v1

  Example of usage specifying all available arguments:

      site0-v1-app:
          win_iis.create_app:
              - name: v1
              - site: site0
              - sourcepath: C:\inetpub\site0\v1
              - apppool: site0

salt.states.win_iis.create_apppool(name)

  Create an IIS application pool.

  Parameters:

    name (str) -- The name of the IIS application pool.

  Usage:

      site0-apppool:
          win_iis.create_apppool:
              - name: site0

salt.states.win_iis.create_binding(name, site, hostheader='', ipaddress='*', port=80, protocol='http', sslflags=0)

  Create an IIS binding.

  Parameters:

    - site (str) -- The IIS site name.

    - hostheader (str) -- The host header of the binding.

    - ipaddress (str) -- The IP address of the binding.

    - port (str) -- The TCP port of the binding.

    - protocol (str) -- The application protocol of the binding.

    - sslflags (str) -- The flags representing certificate type and storage of the binding.

  Example of usage with only the required arguments:

      site0-https-binding:
          win_iis.create_binding:
              - site: site0

  Example of usage specifying all available arguments:

      site0-https-binding:
          win_iis.create_binding:
              - site: site0
              - hostheader: site0.local
              - ipaddress: '*'
              - port: 443
              - protocol: https
              - sslflags: 0

salt.states.win_iis.create_cert_binding(name, site, hostheader='', ipaddress='*', port=443, sslflags=0)

  Assign a certificate to an IIS binding.

  Parameters:

    - name (str) -- The thumbprint of the certificate.

    - site (str) -- The IIS site name.

    - hostheader (str) -- The host header of the binding.

    - ipaddress (str) -- The IP address of the binding.

    - port (str) -- The TCP port of the binding.

    - sslflags (str) -- Flags representing certificate type and certificate storage of the binding.

  Example of usage with only the required arguments:

      site0-cert-binding:
          win_iis.create_cert_binding:
              - name: 9988776655443322111000AAABBBCCCDDDEEEFFF
              - site: site0

  Example of usage specifying all available arguments:

      site0-cert-binding:
          win_iis.create_cert_binding:
              - name: 9988776655443322111000AAABBBCCCDDDEEEFFF
              - site: site0
              - hostheader: site0.local
              - ipaddress: 192.168.1.199
              - port: 443
              - sslflags: 1

  New in version 2016.11.0.

salt.states.win_iis.create_vdir(name, site, sourcepath, app='/')

  Create an IIS virtual directory.

  Parameters:

    - name (str) -- The virtual directory name.

    - site (str) -- The IIS site name.

    - sourcepath (str) -- The physical path.

    - app (str) -- The IIS application.

  Example of usage with only the required arguments:

      site0-foo-vdir:
          win_iis.create_vdir:
              - name: foo
              - site: site0
              - sourcepath: C:\inetpub\vdirs\foo

  Example of usage specifying all available arguments:

      site0-foo-vdir:
          win_iis.create_vdir:
              - name: foo
              - site: site0
              - sourcepath: C:\inetpub\vdirs\foo
              - app: v1

salt.states.win_iis.deployed(name, sourcepath, apppool='', hostheader='', ipaddress='*', port=80, protocol='http')

  Ensure the website has been deployed.

  Parameters:

    - name (str) -- The IIS site name.

    - sourcepath (str) -- The physical path of the IIS site.

    - apppool (str) -- The name of the IIS application pool.

    - hostheader (str) -- The host header of the binding.

    - ipaddress (str) -- The IP address of the binding.

    - port (str) -- The TCP port of the binding.

    - protocol (str) -- The application protocol of the binding.

  Example of usage with only the required arguments. This will default to using the default application pool assigned by IIS:

      site0-deployed:
          win_iis.deployed:
              - name: site0
              - sourcepath: C:\inetpub\site0

  Example of usage specifying all available arguments:

      site0-deployed:
          win_iis.deployed:
              - name: site0
              - sourcepath: C:\inetpub\site0
              - apppool: site0
              - hostheader: site0.local
              - ipaddress: '*'
              - port: 443
              - protocol: https

salt.states.win_iis.remove_app(name, site)

  Remove an IIS application.

  Parameters:

    - name (str) -- The application name.

    - site (str) -- The IIS site name.

  Usage:

      site0-v1-app-remove:
          win_iis.remove_app:
              - name: v1
              - site: site0

salt.states.win_iis.remove_apppool(name)

  Remove an IIS application pool.

  Parameters:

    name (str) -- The name of the IIS application pool.

  Usage:

      defaultapppool-remove:
          win_iis.remove_apppool:
              - name: DefaultAppPool

salt.states.win_iis.remove_binding(name, site, hostheader='', ipaddress='*', port=80)

  Remove an IIS binding.

  Parameters:

    - site (str) -- The IIS site name.

    - hostheader (str) -- The host header of the binding.

    - ipaddress (str) -- The IP address of the binding.

    - port (str) -- The TCP port of the binding.

  Example of usage with only the required arguments:

      site0-https-binding-remove:
          win_iis.remove_binding:
              - site: site0

  Example of usage specifying all available arguments:

      site0-https-binding-remove:
          win_iis.remove_binding:
              - site: site0
              - hostheader: site0.local
              - ipaddress: '*'
              - port: 443

salt.states.win_iis.remove_cert_binding(name, site, hostheader='', ipaddress='*', port=443)

  Remove a certificate from an IIS binding.

  Parameters:

    - name (str) -- The thumbprint of the certificate.

    - site (str) -- The IIS site name.

    - hostheader (str) -- The host header of the binding.

    - ipaddress (str) -- The IP address of the binding.

    - port (str) -- The TCP port of the binding.

  Example of usage with only the required arguments:

      site0-cert-binding-remove:
          win_iis.remove_cert_binding:
              - name: 9988776655443322111000AAABBBCCCDDDEEEFFF
              - site: site0

  Example of usage specifying all available arguments:

      site0-cert-binding-remove:
          win_iis.remove_cert_binding:
              - name: 9988776655443322111000AAABBBCCCDDDEEEFFF
              - site: site0
              - hostheader: site0.local
              - ipaddress: 192.168.1.199
              - port: 443

  New in version 2016.11.0.

salt.states.win_iis.remove_site(name)

  Delete a website from IIS.

  Parameters:

    name (str) -- The IIS site name.

  Usage:

      defaultwebsite-remove:
          win_iis.remove_site:
              - name: Default Web Site

salt.states.win_iis.remove_vdir(name, site, app='/')

  Remove an IIS virtual directory.

  Parameters:

    - name (str) -- The virtual directory name.

    - site (str) -- The IIS site name.

    - app (str) -- The IIS application.

  Example of usage with only the required arguments:

      site0-foo-vdir-remove:
          win_iis.remove_vdir:
              - name: foo
              - site: site0

  Example of usage specifying all available arguments:

      site0-foo-vdir-remove:
          win_iis.remove_vdir:
              - name: foo
              - site: site0
              - app: v1

salt.states.win_iis.set_app(name, site, settings=None)

  New in version 2017.7.0.

  Set the value of the setting for an IIS web application.

  Note

  This function only configures existing app. Params are case sensitive.

  Parameters:

    - name (str) -- The IIS application.

    - site (str) -- The IIS site name.

    - settings (str) -- A dictionary of the setting names and their values.

  Available settings:

  - `physicalPath` - The physical path of the webapp

  - `applicationPool` - The application pool for the webapp

  - `userName` "connectAs" user

  - `password` "connectAs" password for user

  Return type:

    bool

  Example of usage:

      site0-webapp-setting:
          win_iis.set_app:
              - name: app0
              - site: Default Web Site
              - settings:
                  userName: domain\\user
                  password: pass
                  physicalPath: c:\inetpub\wwwroot
                  applicationPool: appPool0

salt.states.win_iis.webconfiguration_settings(name, settings=None)

  Set the value of webconfiguration settings.

  Parameters:

    - name (str) -- The name of the IIS PSPath containing the settings. Possible PSPaths are : MACHINE, MACHINE/WEBROOT, IIS:, IIS:Sitessitename, ...

    - settings (dict) -- Dictionaries of dictionaries. You can match a specific item in a collection with this syntax inside a key: 'Collection[{name: site0}].logFile.directory'

  Example of usage for the `MACHINE/WEBROOT` PSPath:

      MACHINE-WEBROOT-level-security:
        win_iis.webconfiguration_settings:
          - name: 'MACHINE/WEBROOT'
          - settings:
              system.web/authentication/forms:
                requireSSL: True
                protection: "All"
                credentials.passwordFormat: "SHA1"
              system.web/httpCookies:
                httpOnlyCookies: True

  Example of usage for the `IIS:\Sites\site0` PSPath:

      site0-IIS-Sites-level-security:
        win_iis.webconfiguration_settings:
          - name: 'IIS:\Sites\site0'
          - settings:
              system.webServer/httpErrors:
                errorMode: "DetailedLocalOnly"
              system.webServer/security/requestFiltering:
                allowDoubleEscaping: False
                verbs.Collection:
                  - verb: TRACE
                    allowed: False
                fileExtensions.allowUnlisted: False

  Example of usage for the `IIS:\` PSPath with a collection matching:

      site0-IIS-level-security:
        win_iis.webconfiguration_settings:
          - name: 'IIS:\'
          - settings:
              system.applicationHost/sites:
                'Collection[{name: site0}].logFile.directory': 'C:\logs\iis\site0'