Solved

IIS 6 Host Header Scripting

Posted on 2004-10-14
4
884 Views
Last Modified: 2008-01-09
I have the need to add and/or delete host headers from a specific web site via scripting or some other automated process.  I am familiar with iisweb.vbs but it appears to only allow the creation and deletion of web sites, not their host headers.

I have administrative access to the server, so permissions should not be an issue.

Thank you,
Aristippus
0
Comment
Question by:Aristippus
  • 2
  • 2
4 Comments
 
LVL 34

Accepted Solution

by:
Dave_Dietz earned 500 total points
ID: 12313837
Put the following in a VBS file:
-----------------------------------------------------------------------------------------------------------------
SiteInstance = 1                     'Default Web Site - test value - modify for use

IPAddress = "127.0.0.1"          'test value - modify for use - leave blank for 'All Unassigned'

PortNumber = "80"                  'default

HostHeader = "localhost"         'test value - modify for use - set to blank to remove
 
IIsObjectPath = "IIS://localhost/W3SVC/" & SiteInstance ' & "/ServerBindings"
       
Set IIsObject = GetObject(IIsObjectPath)

IIsObject.Put "ServerBindings", IPAddress & ":" & PortNumber & ":" & HostHeader

IIsObject.Setinfo
-------------------------------------------------------------------------------------------------------------

:-)

Dave Dietz
0
 
LVL 1

Author Comment

by:Aristippus
ID: 12314631
Dave,

Thanks for the reply, but that script 'changes' the host header and other information.

I need the ability to 'add' and remove additional host headers.

Hopefully this script can be modified to produce the desired results.

Thank you,
Arisitippus
0
 
LVL 1

Author Comment

by:Aristippus
ID: 12316287
Dave's script didn't allow for what I needed, but it did lead me in the right direction.

IIS object does NOT support ADS_PROPERTY_APPEND so it needs a work around (load existing into an array, redim array adding element, rewrite the properties).

It also tests to ensure that the host header does not already exist.

The working script:

Const ADS_PROPERTY_UPDATE = 2
strADsPath = "IIS://localhost"
strKey = "W3SVC/1"
strAttribute = "ServerBindings"
strEntry = "127.0.0.1:80:new.test.com"
Set objKey = GetObject(strADsPath & "/" & strKey)

arrValue=objKey.GetEx(strAttribute)
' Check to see whether the entry is already in the
' collection. If it is, quit and inform
For Each strValue in arrValue
      If strValue = strEntry Then
            WScript.Echo "The entry: " & strEntry & _
                  " is already present in " & strAttribute & "." & _
                  " The script will now quit."
            WScript.Quit
      End If
Next

' Add a new item to the array.
Redim Preserve arrValue(uBound(arrValue) + 1)
' Add the value to the new item in the array.
arrValue(uBound(arrValue)) = strEntry

' Update the object with the existing values
' and the new value if it wasn't already present.
objKey.PutEx ADS_PROPERTY_UPDATE, strAttribute, arrValue
objKey.SetInfo

arrValue=objKey.GetEx(strAttribute)
For Each strValue in arrValue
      WScript.Echo strValue
Next
0
 
LVL 34

Expert Comment

by:Dave_Dietz
ID: 12316289
I was just working on something like this -  just nowhere near as elegant.....  :-)

Dave Dietz
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Debug Tools to analyse IIS process: This article focus on taking memory dumps from IIS to determine which code is taking more time and to analyse which calls hangs/causes more CPU usage. To take dumps,download the following. Install1: To st…
Prologue It is often required to host multiple websites on a single instance of IIS, mostly in development environments instead of on production servers. I am sure it is not much a preferred solution on production servers but this is at least a pos…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now