Click here to Skip to main content
12,896,175 members (67,140 online)
Click here to Skip to main content
Add your own
alternative version


35 bookmarked
Posted 11 Sep 2007

IIS Utility to Create Virtual Directory - Advanced

, 23 Oct 2007 CPOL
Rate this:
Please Sign up or sign in to vote.
This tool is useful to create new virtual directories with extra settings in One Click !
Screenshot - IISUtility.jpg


This is a simple IIS utility to create a new virtual directory with predefined settings. I found a sample code to create a virtual directory on the Internet (Original article here). I just added some features into that.....
So the credit for this goes to original author.


In big projects, it is often required to create and configure new virtual dirs. I tried to create the utility which will ease the work of the configuration management team.

Using the Code

The code is attached. Now it's your job to enhance the utility by adding some more features!

Dim IISSchema As New System.DirectoryServices.DirectoryEntry_
            Dim CanCreate As Boolean = _
                Not IISSchema.Properties("Syntax").Value.ToString.ToUpper() = "BOOLEAN"
            Dim AppName As String = txtVirtDirName.Text, path As String = txtPath.Text
            If CanCreate Then
                Dim PathCreated As Boolean

                Dim IISAdmin As New System.DirectoryServices.DirectoryEntry_
                'make sure folder exists
                If Not System.IO.Directory.Exists(path) Then
                    PathCreated = True
                End If

                Dim VDir As System.DirectoryServices.DirectoryEntry = Nothing
                Dim bAlreadyThere As Boolean = False
                'If the virtual directory already exists then delete it
                For Each VD As System.DirectoryServices.DirectoryEntry In _
                    If VD.Name = AppName Then
                        IISAdmin.Invoke("Delete", New String() _
                        {VD.SchemaClassName, AppName})
                        'MsgBox("Virtual directory already exists..!.", _
                            MsgBoxStyle.Information, "Create Virtual Directory")
                        'Exit Sub
                        VDir = VD
                        bAlreadyThere = False
                        Exit For
                    End If
                Next VD

                'Create and setup new virtual directory
                If (Not bAlreadyThere) Then
                    VDir = IISAdmin.Children.Add(AppName, "IIsWebVirtualDir")
                End If
                VDir.Properties("Path").Item(0) = path
                VDir.Properties("AppFriendlyName")(0) = AppName
                VDir.Properties("EnableDirBrowsing").Item(0) = True
                VDir.Properties("AccessRead").Item(0) = True
                VDir.Properties("AccessExecute").Item(0) = True
                VDir.Properties("AccessWrite").Item(0) = False
                VDir.Properties("AccessScript").Item(0) = True
                VDir.Properties("AuthNTLM").Item(0) = chkWinAuthenticate.Checked _
                    'True 'Integreted Windows(Authontocation)
                VDir.Properties("AuthAnonymous").Item(0) = chkAnonymous.Checked
                If (chkAnonymous.Checked) Then
                    VDir.Properties("AnonymousUserName").Item(0) = txtUser.Text
                    VDir.Properties("AnonymousUserPass").Item(0) = txtPassword.Text
                    VDir.Properties("AnonymousPasswordSync").Item(0) = False
                End If
                VDir.Properties("EnableDefaultDoc").Item(0) = chkDefaultDocs.Checked
                VDir.Properties("DefaultDoc").Item(0) = txtDefaultDocuments.Text
                VDir.Properties("AspEnableParentPaths").Item(0) = True


                If Not bAlreadyThere Then VDir.Invoke("AppCreate2", 2)
                If (chkASPNET2.Checked) Then
                    Dim prcProcess As System.Diagnostics.Process
                    prcProcess = System.Diagnostics.Process.Start_
                    (System.Environment.GetEnvironmentVariable("windir") + _
                        "\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis", _
                        " -s /W3SVC/1/Root/" + txtVirtDirName.Text)
                End If
                MessageBox.Show("Done", "Hurray...", MessageBoxButtons.OK, _

            End If


  1. Create new virtual directories overwriting existing ones
  2. Configure ASP.NET 2.0 or 1.1 Framework
  3. Configure your own user under anonymous access
  4. Configure default pages
  5. Test immediately

Enhancements -- Your Job!

  1. I don't have IIS 7. Test it on IIS 7 and let me know
  2. Configure the appropriate application pool in IIS 6

NOTE : This is raw code just to get an idea of how to manage virtual directories. You need to modify the code according to your need.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Web Developer
United States United States
He is just an ordinary developer and curious about new technologies. Fond of detailed analysis of How Stuff Works! He likes debugging, trouble-shooting and making out the application of difficulties. Finding another ways to achieve the result is his passion!

You may also be interested in...

Comments and Discussions

GeneralCode fails for IIS7 Pin
NanaAM11-Oct-07 2:03
memberNanaAM11-Oct-07 2:03 
GeneralRe: Code fails for IIS7 Pin
HemantPune11-Oct-07 2:34
memberHemantPune11-Oct-07 2:34 
Generalbug Pin
Fredrik B12-Sep-07 22:48
memberFredrik B12-Sep-07 22:48 
GeneralRe: bug Pin
HemantPune12-Sep-07 22:56
memberHemantPune12-Sep-07 22:56 
General[Message Deleted] Pin
HemantPune12-Sep-07 2:40
memberHemantPune12-Sep-07 2:40 
GeneralRe: Remote Server Pin
Steve Hansen12-Sep-07 3:51
memberSteve Hansen12-Sep-07 3:51 
GeneralRe: Remote Server Pin
HemantPune12-Sep-07 18:10
memberHemantPune12-Sep-07 18:10 
GeneralRe: Remote Server Pin
Steve Hansen12-Sep-07 20:24
memberSteve Hansen12-Sep-07 20:24 
GeneralRe: Remote Server Pin
Andrew Harrs12-Sep-07 19:13
memberAndrew Harrs12-Sep-07 19:13 
GeneralRe: Remote Server Pin
HemantPune12-Sep-07 19:19
memberHemantPune12-Sep-07 19:19 
GeneralRe: Remote Server Pin
Andrew Harrs12-Sep-07 19:32
memberAndrew Harrs12-Sep-07 19:32 
GeneralRe: Remote Server Pin
HemantPune12-Sep-07 19:35
memberHemantPune12-Sep-07 19:35 
GeneralRe: Remote Server Pin
Andrew Harrs12-Sep-07 20:07
memberAndrew Harrs12-Sep-07 20:07 
AnswerRe: Remote Server Pin
HemantPune12-Sep-07 20:11
memberHemantPune12-Sep-07 20:11 
GeneralRe: Remote Server Pin
Andrew Harrs12-Sep-07 20:44
memberAndrew Harrs12-Sep-07 20:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170424.1 | Last Updated 23 Oct 2007
Article Copyright 2007 by PuneWala
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid