Creating SharePoint webs with Excel and STSADM

This is a follow-up to my Site Definition Helper scripts post.  As described in that post, we were looking at making it simple to create multiple webs.  While you can use a site definition with a PortalProvisioningProvider to do this, if you have variations, you cannot use it since most of your webs will be under a variation and the provider doesn't create variations.


Before we were using Site Definitions, we had a nice STSADM extension that was creating webs + pages, repairing what it needed such as AvailablePageLayouts and WelcomePage parameters.  Fortunately, a good Site Definition design made that obsolete except for creating the "starting webs" as well as for creating test pages (but you could still provision the test pages with a Site Definition anyway).  Since we have Site Definitions, we should use the "STSADM -o CreateWeb" command since it's easy to use and it works fine.


The command requires the following parameters:

  • url
  • sitetemplate
  • title
  • lcid


Ideally, it would be nice to have a nice Excel file that contains all of these in a much nicer table format than what you would get in a CMD file.  And that's exactly what we did!  The Excel contains the same columns that are required for the command to execute, we export it to an "Text (MS-DOS)" format (very important if you want your locale to work correctly), and then run a "For" loop in a CMD file that reads the exported TXT file :


    1: FOR /F "eol=; tokens=1,2,3,4 delims=    " %%i IN (Data/CreateWebs.txt) DO (
    2:     @ECHO ----[ Creating "%%i" ]--
    3:     %stsadm% -o createweb -url %url%%%i -sitetemplate %%j -title "%%k" -lcid %%l
    4: )


Here's the complete script which requires the variable.cmd available on this post:

    1: @ECHO OFF
    2: cd /d %0\.. 
    4: @CALL Variables.cmd
    6: @ECHO %separator%
    7: @ECHO Create Website Structure and Content.
    8: @ECHO %separator%
   11: @ECHO:
   12: @ECHO %separator%
   13: @ECHO Create Site Structure
   14: @ECHO %separator%
   15: @ECHO.
   17: FOR /F "eol=; tokens=1,2,3,4 delims=    " %%i IN (Data/CreateWebs.txt) DO (
   18:     @ECHO ----[ Creating "%%i" ]--
   19:     %stsadm% -o createweb -url %url%%%i -sitetemplate %%j -title "%%k" -lcid %%l
   20: )
   23: :IE
   24: @ECHO %separator%
   25: @ECHO Operation completed
   26: @ECHO %separator%
   28: IF NOT "%1"=="noie" start iexplore %url%


You can download all the scripts here :



Big thanks to Cristian Deschamps from Orckestra for the help on this.  Happy web creation!