'****************************************************
'		Script Witten by Larry Heintz
'		April 2006 www.windowsadminscripts.com
' This script will delete an Application Pool on a
' local or remote computer running IIS 6.0 .
'
' Script Usage:
' Delete App Pool: cscript apdelete.vbs /computer:[computername] /apname:"[App Pool Name]"
' List App Pools: cscript apdelete.vbs /computer:[computername] /list
'****************************************************
Dim args,computername,apname
Set args = Wscript.Arguments.Named
computername = args.Item("computer")
apname = args.Item("apname")

if computername = "" then
	computername = getComputer()
else
	computername = computername
end if

if wscript.arguments.count = 0 then
	wscript.echo "Script Usage:"
	wscript.echo "Delete App Pool: cscript apdelete.vbs /computer:[computername] /apname:""[App Pool Name]"""
	wscript.echo "List App Pools: cscript apdelete.vbs /computer:[computername] /list"
elseif args.exists("list") then
	Call enumAppPools()
elseif args.exists("apname") then
	if apname = "" then
		wscript.echo "The script has ended due to no Application Pool name given (apname)"
		wscript.quit
	else
		apname = trim(apname)
	end if
	Call delAP(apname)
else
	wscript.echo "Script Usage:"
	wscript.echo "Delete App Pool: cscript apdelete.vbs /computer:[computername] /apname:""[App Pool Name]"""
	wscript.echo "List App Pools: cscript apdelete.vbs /computer:[computername] /list"
end if

Function delAP(apname)
On Error Resume Next
dim obj,objpool
set obj = GetObject("IIS://" & computername & "/W3SVC/apppools")
if not (errorChecking (computername)) then
	obj.delete "IIsApplicationPool",apname
wscript.echo "Application Pool " & ucase(apname) & " has been deleted"
end if	
set obj = nothing
End Function

Sub enumAppPools()
On Error Resume Next
Dim apool,obj
set obj = GetObject("IIS://" & computername & "/W3SVC/apppools")
if not (errorChecking (computername)) then
	wscript.echo "Application Pool Names on " & ucase(computername)
	wscript.echo "========================================"
	for each apool in obj
		wscript.echo apool.name
	next
end if
set obj = nothing
End Sub

Function getComputer()
	Dim objNet
	Set objNet = WScript.CreateObject("WScript.Network") 
	getComputer = objNet.ComputerName 
	Set objNet = Nothing 
End Function

Function errorChecking(computername) 
errorChecking = False 
if err.number <> 0 then 
	wscript.echo "Unable to connect to " & ucase(computername) & " or " & ucase(computername) & " is not running IIS 6.0"
	err.Clear () 
	errorChecking = True
end if 
end Function
