home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / iis4_07.cab / mkwebsrv.js < prev    next >
Text File  |  1997-10-25  |  4KB  |  154 lines

  1. /*********************************************
  2. *
  3. *  Web Server Creation Utility  
  4. *
  5. **********************************************
  6. *
  7. *  Description:
  8. *  ------------
  9. *  This sample admin script allows you to create a web server.
  10. *
  11. *  To Run:  
  12. *  -------
  13. *  This is the format for this script:
  14. *  
  15. *      cscript mkwebsrv.js <rootdir> [-n <instancenum>][-c <comment>][-p <portnum>][-X (don't start)]
  16. *  
  17. *  NOTE:  If you want to execute this script directly from Windows, use 
  18. *  'wscript' instead of 'cscript'. 
  19. *
  20. **********************************************/
  21.  
  22.  
  23. // Initialize variables
  24. var ArgCount, WRoot, WNumber, WComment, WPort, BindingsList, ServerRun;
  25. var ServiceObj, ServerObj, VDirObj;
  26.  
  27. // Default values
  28. ArgCount = 0;
  29. WRoot = "";
  30. WNumber = 10;
  31. WComment = "SampleServer";
  32. WPort = new Array(":84:");  // default port; NOTE: takes an array of strings         
  33. ServerRun = true;
  34.  
  35.   // ** Parse Command Line
  36.  
  37.     // Loop through arguments
  38.     while (ArgCount < WScript.arguments.length)   {
  39.       
  40.       // Determine switches used
  41.       switch (WScript.arguments.item(ArgCount))   {
  42.  
  43.          case "-n":   // Set server instance number
  44.             // Move to next arg, which should be parameter
  45.             ++ArgCount;
  46.             if (ArgCount >= WScript.arguments.length) 
  47.                UsageMsg();
  48.             else
  49.                WNumber = WScript.arguments.item(ArgCount);
  50.             break;
  51.  
  52.          case "-c":   // Set server comment (friendly name)
  53.             // Move to next arg, which should be parameter
  54.             ++ArgCount;
  55.             if (ArgCount >= WScript.arguments.length)  
  56.                UsageMsg();
  57.             else
  58.                WComment = WScript.arguments.item(ArgCount);
  59.             break;
  60.  
  61.          case "-p":   // Port binding
  62.             // Move to next arg, which should be parameter
  63.             ++ArgCount;
  64.             if (ArgCount >= WScript.arguments.length) 
  65.                UsageMsg();
  66.             else
  67.                WPort[0] = ":" + WScript.arguments.item(ArgCount) + ":";
  68.             break;
  69.  
  70.          case "-X":   // Do NOT start the server upon creation
  71.             ServerRun = false;
  72.             break;
  73.  
  74.          case "-h":   // Help!
  75.          case "-?":
  76.          case "/?":
  77.             UsageMsg();
  78.             break;
  79.  
  80.          default:
  81.             if (WRoot != "")  // Only one root allowed
  82.                UsageMsg();
  83.             else
  84.                WRoot = WScript.arguments.item(ArgCount);
  85.  
  86.       }
  87.  
  88.       // Move pointer to next argument
  89.       ++ArgCount;
  90.  
  91.   }   // ** END command-line parse
  92.  
  93.   // Screen to make sure WRoot was set
  94.   if (WRoot == "") 
  95.       UsageMsg();
  96.  
  97.  
  98.   // ** Create Server **
  99.  
  100.   // First, create instance of Web service
  101.   ServiceObj = GetObject("IIS://Localhost/W3SVC");
  102.   
  103.   // Second, create a new virtual server at the service
  104.   ServerObj = ServiceObj.Create("IIsWebServer", WNumber);
  105.   
  106.   // Next, configure new server
  107.   ServerObj.ServerSize = 1   // Medium-sized server;
  108.   ServerObj.ServerComment = WComment;
  109.   ServerObj.ServerBindings = WPort;
  110.  
  111.   // Write info back to Metabase
  112.   ServerObj.SetInfo();
  113.  
  114.  
  115.  
  116.   // ** Create virtual root directory **
  117.   VDirObj = ServerObj.Create("IIsWebVirtualDir", "ROOT");
  118.  
  119.   // Configure new virtual root
  120.   VDirObj.Path = WRoot;
  121.   VDirObj.AccessRead = true;
  122.   VDirObj.AccessWrite = true;
  123.   VDirObj.EnableDirBrowsing = true;
  124.  
  125.   // Write info back to Metabase
  126.   VDirObj.SetInfo();
  127.  
  128.   // Success!
  129.   WScript.echo("Created: Web server '" + WComment + "' (Physical root=" + WRoot + ", Port=" + WPort[0] + ").");
  130.  
  131.   // Start new server?
  132.   if (ServerRun == true)  {
  133.  
  134.      // Start server
  135.      ServerObj.Start();
  136.      WScript.echo("Started: Web server '" + WComment + "' (Physical root=" + WRoot + ", Port=" + WPort[0] + ").");
  137.   }
  138.  
  139.   WScript.quit(0);
  140.  
  141.  
  142.  
  143.  
  144. // Displays usage message, then QUITS
  145. function UsageMsg()  {
  146.    WScript.echo("Usage:  cscript mkwebsrv.js <rootdir> [-n <instancenum>][-c <comment>][-p <portnum>][-X (don't start)]");
  147.    WScript.quit();
  148. }
  149.  
  150.  
  151.  
  152.  
  153.  
  154.