AppcmdUI – appcmd command autocompletion tool
Do you always find yourself using “/?” in appcmd to find what switches you need? Do you always run “appcmd list” commands to see the list of apppools/sites/apps/traces etc before actually running the command? Do you always end up opening schema when working with "appcmd config" commands? Worry no more. I have written AppcmdUI to alleviate your pains. AppcmdUI provides you available options at each step so that you only need to pick the option from the list as in the snapshot below.

Features
§ Works with both “appcmd <object> <verb>” and “appcmd <verb> <object>” command styles.
§ Shows list of objects and verbs available. Builds auto complete list dynamically so that you see only few options.
§ NEW – Up-down lets you browse recently executed commands.
§ NEW – If you run the application without sufficient privileges, it shows UAC dialog box for you to grant access.
Installation
How to Use

AppcmdUI uses “appcmd <object> <verb>” format. So you see list of available objects after appcmd. If you type “appcmd <verb>” and then space, you will see list of objects which you can use with the verb you typed. If you want to get list of verbs and not objects when you type “appcmd “, you can set <verb> <object> option in the menu as shown below.

When you have the <verb> <object> option set, you will see the available verbs after appcmd as shown below.

Once you have selected verb and object, you will see list of available options which can be used with them.
Parameter Values
When you need the available application pools, sites, applications, virtual directories, backups, traces, worker processes in the command, AppcmdUI shows the values you can use. Next time when you need to start or stop apppools/sites, delete apps/vdirs or inspect traces, you won’t need “appcmd list” command first.

Force Update
AppcmdUI picks up list of application pools, sites, applications, virtual directories, backups once and update this list only when “appcmd add/delete” calls are made. If you use “appcmd set config” call or some other means of creating apppools/sites/apps etc, you would see the list is not updated. Eg. If a new application pool “AppcmdAppPool” is created using “appcmd set config /section:applicationPools /+[name='AppcmdAppPool']", that apppool is not shown in the list of available apppools.

You can use "Force Update" option to force AppcmdUI to update list of application pools, sites, applications etc.

After forcing an update, "AppcmdAppPool" is shown in the list of available application pools.

Working with configuration
When you are working with “appcmd list config” or “appcmd set config”, you get list of available sections as soon as you enter “/section:” as shown below.

AppcmdUI also shows you list of attributes, elements, collections when working with set/list commands. Adding a collection element is now a whole lot easier as you can see below.

List of attributes, elements, collections is also available when you work with “appcmd set <apppool|site|app|vdir”. In the snapshot below, I am getting attributes which can be set for a virtual directory.

Schema elements are available with various list commands as well after you type “-text:”. –text with list command allows you to print only particular attributes.

Hope you find working with appcmd much easier with this.
-Kanwal
about 1 year ago
I found a small bug in the application…
Running this command from AppCmdUI is working:
appcmd apppool set /apppool.name:Marketing /processModel.identityType:NetworkService
But is not working in scripts. In the script I need to use the following command:
appcmd set apppool /apppool.name:Marketing /processModel.identityType:NetworkService
It's a great program!!!
Michael Iversen
http://www.mitrade.dk
about 1 year ago
Hi Michael.
Thanks for reporting this. Yes appcmd only accepts “appcmd set apppool” command but I find “appcmd apppool set” more intuitive. After my team decided to stick with first style only, I added feature in AppcmdUI to accept second style in addition to first style. So second style only works in AppcmdUI and is by design.
Thanks,
Kanwal