25

I am trying to find an IIS7 site ID using site name using appcmd or other utility but have not found any way to achieve it.

Michael
  • 8,362
  • 6
  • 61
  • 88
anil
  • 961
  • 1
  • 11
  • 23

5 Answers5

29

The following command returns site ID:

%systemroot%\system32\inetsrv\APPCMD list site <SiteName>

Example output:

SITE "Default Web Site" (id:1,bindings:http/*:80:default.local,state:Started)
SITE "My Site" (id:2,bindings:http/*:80:my.local,state:Started)
Milan Gardian
  • 11,326
  • 5
  • 38
  • 45
anil
  • 961
  • 1
  • 11
  • 23
  • 6
    You can get a specific property of the Site (id, bindings, state) by using the /text:{property} argument. For example, to get just the ID (returns simply "1"): APPCMD list site "Default Web Site" \text:id – Alejandro Moreno May 27 '13 at 22:56
  • this worked for me on iis 6, with the only exception being that I had to run the command prompt as an administrator – Troy Knapp Apr 26 '16 at 13:46
16

The easiest way is to load up IIS Manager and click on the "Sites" folder. There should be a column called "ID" in the list shown in the Features View pane, and that's your Site ID.

Dave Markle
  • 95,573
  • 20
  • 147
  • 170
5

You may also give a try to Powershell get-website commandlet. Without args it will list all sites together with IDs.

the_joric
  • 11,986
  • 6
  • 36
  • 57
2

Here is the Powershell-way of doing it:

Get-Website -Name "Default Web Site" | Select -ExpandProperty ID

(Replace Default Web Site with your site's name.)

cederlof
  • 7,206
  • 4
  • 45
  • 62
1

Save this a XXX.VBS

dim lookfor: lookfor = lcase(WScript.Arguments(0))
dim ws: set ws = getobject("IIS://localhost/w3svc")
for each site in ws
    if site.class = "IIsWebServer" then
        if lcase(site.ServerComment) = lookfor then
            wscript.echo "id=" & site.Name & ", name=" & site.ServerComment
        end if
    end if
next

then from the command line

XXX.vbs site.tofind.com

or

cscript XXX.vbs site.tofind.com
Alex K.
  • 171,639
  • 30
  • 264
  • 288