Archives

Archives / 2007 / June
  • Things you can do by piping appcmd commands

    Here are some of the cool things you can do by piping appcmd commands together in IIS7.

    Application Pools
    1. Recycle all application pools (replace recycle with start/stop to start/stop all apppools)
    appcmd list apppool /xml | appcmd recycle apppool /in

    2. Stop application pools with word "cheap" in it
    appcmd list apppool /name:"$=*cheap*" /xml | appcmd stop apppool /in


    3. Set property enable32BitAppOnWin64 to true for all apppools (Filter apppools as in 2 if needed)
    appcmd list apppool /xml | appcmd set apppool /in /enable32BitAppOnWin64:true

    4. Start apppools which are stopped
    appcmd list apppool /state:Stopped /xml | appcmd start apppool /in

    5. Recycle application pools which are used in some applications
    appcmd list app /xml | appcmd list apppool /in /xml | appcmd recycle apppool /in
    appcmd list app /xml | appcmd recycle apppool /in (This might recycle one apppool multiple times)

    6. Recycle apppools serving website “Default Web Site”
    appcmd list site "Default Web Site" /xml | appcmd list app /in /xml | appcmd list apppool /in /xml | appcmd recycle apppool /in
    appcmd list app /site.name:"Default Web Site" /xml | appcmd list apppool /in /xml | appcmd recycle apppool /in


    Sites
    7. Start all the sites (Replace start with stop to stop all sites)
    appcmd list site /xml | appcmd start site /in

    8. Start the sites which are stopped
    appcmd list site /state:stopped /xml | appcmd start site /in

    9. Set serverAutoStart to false for all sites
    appcmd list site /xml | appcmd set site /serverAutoStart:false /in

    10. Keep sites config data and restore later
    appcmd list site /config /xml > sites.xml
    appcmd add sites /in < sites.xml


    Applications and Vdirs
    11. Delete all apps which are using a particular apppool
    appcmd list apppool DefaultAppPool /xml | appcmd list app /in /xml | appcmd delete app /in

    12. Move all applications in a site to NewAppPool apppool
    appcmd list app /site.name:"Default Web Site" /xml | appcmd set app /in /applicationPool:NewAppPool

    13. List all sites with "/test" app
    appcmd list app /path:"/test" /xml | appcmd list site /in

    14. List apps created by user10 (assuming all his apps under a folder whose name contains user10)
    appcmd list vdir /physicalPath:"$=*user10*" /xml | appcmd list app /in

    15. List sites which read from C:\inetput\wwwroot
    appcmd list vdir /physicalPath:C:\inetput\wwwroot /xml | appcmd list app /xml /in | appcmd list site /in

    16. List the vdirs of sites which are stopped
    appcmd list site /state:stopped /xml | appcmd list app /xml /in | appcmd list vdir /in

    Worker processes and Requests
    17. Stop apppools of requests running for more than 60 seconds
    appcmd list request /xml /time:"$>60000" | appcmd list apppool /in /xml | appcmd stop apppool /in

    18. List apps served by wp 3600
    appcmd list wp 3600 /xml | appcmd list apppool /xml /in | appcmd list app /in

    Modules
    19. Disable all managed modules
    appcmd list module /preCondition:managedHandler /xml | appcmd delete module /in

    20. Uninstall all native modules
    appcmd list module /type:"" /xml | appcmd uninstall module /in

    21. Unlock all module entries under system.webServer/modules (won’t work on vista)
    appcmd list module /xml | appcmd set config /lockItem:false /in


    Configuration
    22. Keep config of a particular section and restore later
    appcmd list config http://localhost/app1/ /section:caching /xml /config > config.xml
    appcmd set config
    http://localhost/app1 /in < config.xml


    Backups and Traces
    23. Delete all backups
    appcmd list backup /xml | appcmd delete backup /in


    24. List sites generating 404
    appcmd list trace /statusCode:404 /xml | appcmd list site /in


    Hope this helps.

    -Kanwal