Things you can do by piping appcmd commands

Posted: Jun 17, 2007  10 comments  

Average Rating

Tags
Appcmd
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

Comments

  1. Mike Volodarsky
    June 19, 2007

    Great post - I've been meaning to cover this myself for too long!  This should be very useful for server admins ...

    Mike

  2. bills
    June 20, 2007

    great post!  Very cool scenarios that most people probably don't realize AppCmd is capable of.

  3. Govind
    August 7, 2007

    so is powershell beneath it? If it has to work with ServerCore and then possibly that is not possible.

  4. ksingla
    August 7, 2007

    Govind, appcmd is not using powershell for this. It has its own implementation and so will work on servercore as well.

  5. TrackBack
    August 10, 2007
  6. oyun
    February 27, 2008

    great post!  Very cool scenarios that most people probably don't realize AppCmd is capable of

  7. ASP.NET Debugging
    April 1, 2008

    So with IIS7, there is a new way to get data out about your web server, using the new appcmd.exe process.

  8. IIS 7.0 Appcmd ?????? | ???????????????
    November 2, 2008

    Pingback from  IIS 7.0 Appcmd ?????? | ???????????????

  9. Hiroshi Okunushi's Blog ☆ミ
    January 19, 2009

    結構 appcmd.exe は動詞とオブジェクトを並べて使うもので、netsh に比べれば後ろにくっつくものが少ないのですが、それでもすごく多いコマンドになっています。なので、今までも appcmd list

Submit a Comment