Solved

IIS 6 Host Header Scripting

Posted on 2004-10-14
4
894 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Logparser is the smartest tool I have ever used in parsing IIS log files and there are many interesting things I wanted to share with everyone one of the  real-world  scenario from my current project. Let's get started with  scenario - How do w…
Lync server 2013 or Skype for business Backup Service Error ID 4049 – After File Share Migration
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …

734 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