How to setup IIS with VB Script?

Posted on 2009-07-08
Last Modified: 2012-05-07
Basically what I do right now is I manually go to IIS

1. add UserAcct to sercurity in IIS
2. create web site name Test and set local path to C:\Inetpub\Test
3. set host name as
4. create new virtual directory: op
5. set local path to C:\Inetpub\Test\MoreTest
6. Application name: op

How would I do automate all of that using VB script?

Question by:dy211
  • 3

Author Comment

ID: 24813725
can anyone help please?? I dont have the MicrosoftIISv2 namespace, are there other ways to do it?

Accepted Solution

dy211 earned 0 total points
ID: 24817533
I was able to create the website successfully with mkw3site.vbs, and i was able to create the virtual directory under it with

set objIIS = GetObject("IIS://localhost/W3SVC/2/root")

with /1/ it was creating the vir dir at Default Website before but after switching to /2/ it works correctly by creating it under Test.

But the problem is, what if I run this script on another computer with many websites in IIS and Test is not the second 1?? why doesnt IIS://localhost/W3SVC/Test/root work?
	' create website with mkw3site.vbs

	dim objShell : set objShell = wscript.CreateObject("WScript.Shell")	

	strCmd = "cscript C:\""Documents and Settings""\user\Desktop\scripts\mkw3site.vbs -r C:\Inetpub\Test -t Test -h -o 8080"	

	dim objExec : set objExec = objShell.Exec(strCmd)


	'strOutPut = objExec.StdOut.ReadAll

	strErr = objExec.StdErr.ReadAll

	'strECode = objExec.ExitCode

	' outputs

	if strErr = "" then

		wscript.echo vbtab & "Website ""Test"" created..."


		wscript.echo vbtab & strErr	

	end if

	set objShell = Nothing	


	' create virtual directory

    	dim objIIS, objVirtualDir

    	dim objIIsIPSecurity

	dim packageName : packageName = "op"

	dim path : path = "C:\Inetpub\Test\MoreTest"


    	' remove virual directory if any

	'On Error Resume Next

    	set objIIS = GetObject("IIS://localhost/W3SVC/1/root")

    	objIIS.Delete "IIsWebVirtualDir", PackageName

    	Set oIIS = Nothing


    	' Set up configuration

    	set objIIS = GetObject("IIS://localhost/W3SVC/2/root")  

    	set objVirtualDir = objIIS.Create("IIsWebVirtualDir", packageName)

    	objVirtualDir.Path = path

    	objVirtualDir.AccessRead = True

    	objVirtualDir.AccessWrite = True

    	objVirtualDir.AccessExecute = True

    	objVirtualDir.AuthAnonymous = False

    	objVirtualDir.AuthBasic = False

    	objVirtualDir.AuthNTLM = True

    	objVirtualDir.ContentIndexed = True

    	objVirtualDir.EnableDirBrowsing = False

    	objVirtualDir.AppIsolated = False

    	objVirtualDir.AspBufferingOn = True

    	objVirtualDir.AspSessionTimeout = 1

 	if inStr(1, objVirtualDir.DefaultDoc, "Default.asp") = 0 then

 	       objVirtualDir.DefaultDoc = "Default.asp, " & objVirtualDir.DefaultDoc

 	end if

 	objVirtualDir.EnableDefaultDoc = True

	call objVirtualDir.AppCreate(True)

   	objVirtualDir.AppFriendlyName = packageName

    	call objVirtualDir.SetInfo

	set objVirtualDir = nothing

    	set objIIS = nothing

Open in new window


Author Comment

ID: 24817564
Also, to give permission to folders work with the code below, but how would I do the samething to the website Test I created? can I set it during creation? if not how can I set it afterwards?
	set objShell = wscript.CreateObject("WScript.Shell")

        objShell.Run "cmd /c echo y | cacls ""C:\Inetpub"" /E /P ""Network Service:R"" ""Internet Guest Account:R"" ""Launch IIS Process:R""", 7, True

Open in new window

LVL 37

Assisted Solution

meverest earned 100 total points
ID: 24894519

the site-id ('1' and '2') defines which web site you are operating on.  You can see the site ID in the IIS manager application when you select the 'web sites' node and view the list of web sites in the right hand panel.  The number shown under "Identifier" is the same as the number that you use in the adsi path.

each time you create a new web site, assign a unique ID, and then you can manage that web site using the functions you are already using.


Featured Post

Get up to 2TB FREE CLOUD per backup license!

An exclusive Black Friday offer just for Expert Exchange audience! Buy any of our top-rated backup solutions & get up to 2TB free cloud per system! Perform local & cloud backup in the same step, and restore instantly—anytime, anywhere. Grab this deal now before it disappears!

Join & Write a Comment

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  ( Here (http…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

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

16 Experts available now in Live!

Get 1:1 Help Now