Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/********************************************* * * Web Server Creation Utility * ********************************************** * * Description: * ------------ * This sample admin script allows you to create a web server. * * To Run: * ------- * This is the format for this script: * * cscript mkwebsrv.js <rootdir> [-n <instancenum>][-c <comment>][-p <portnum>][-X (don't start)] * * NOTE: If you want to execute this script directly from Windows, use * 'wscript' instead of 'cscript'. * **********************************************/
// Initialize variables
var ArgCount, WRoot, WNumber, WComment, WPort, BindingsList, ServerRun; var ServiceObj, ServerObj, VDirObj;
// Default values
ArgCount = 0; WRoot = ""; WNumber = 10; WComment = "SampleServer"; WPort = new Array(":84:"); // default port; NOTE: takes an array of strings
ServerRun = true;
// ** Parse Command Line
// Loop through arguments
while (ArgCount < WScript.arguments.length) { // Determine switches used
switch (WScript.arguments.item(ArgCount)) {
case "-n": // Set server instance number
// Move to next arg, which should be parameter
++ArgCount; if (ArgCount >= WScript.arguments.length) UsageMsg(); else WNumber = WScript.arguments.item(ArgCount); break;
case "-c": // Set server comment (friendly name)
// Move to next arg, which should be parameter
++ArgCount; if (ArgCount >= WScript.arguments.length) UsageMsg(); else WComment = WScript.arguments.item(ArgCount); break;
case "-p": // Port binding
// Move to next arg, which should be parameter
++ArgCount; if (ArgCount >= WScript.arguments.length) UsageMsg(); else WPort[0] = ":" + WScript.arguments.item(ArgCount) + ":"; break;
case "-X": // Do NOT start the server upon creation
ServerRun = false; break;
case "-h": // Help!
case "-?": case "/?": UsageMsg(); break;
default: if (WRoot != "") // Only one root allowed
UsageMsg(); else WRoot = WScript.arguments.item(ArgCount);
}
// Move pointer to next argument
++ArgCount;
} // ** END command-line parse
// Screen to make sure WRoot was set
if (WRoot == "") UsageMsg();
// ** Create Server **
// First, create instance of Web service
ServiceObj = GetObject("IIS://Localhost/W3SVC"); // Second, create a new virtual server at the service
ServerObj = ServiceObj.Create("IIsWebServer", WNumber); // Next, configure new server
ServerObj.ServerSize = 1 // Medium-sized server;
ServerObj.ServerComment = WComment; ServerObj.ServerBindings = WPort;
// Write info back to Metabase
ServerObj.SetInfo();
// ** Create virtual root directory **
VDirObj = ServerObj.Create("IIsWebVirtualDir", "ROOT");
// Configure new virtual root
VDirObj.Path = WRoot; VDirObj.AccessRead = true; VDirObj.AccessWrite = true; VDirObj.EnableDirBrowsing = true;
// Write info back to Metabase
VDirObj.SetInfo();
// Success!
WScript.echo("Created: Web server '" + WComment + "' (Physical root=" + WRoot + ", Port=" + WPort[0] + ").");
// Start new server?
if (ServerRun == true) {
// Start server
ServerObj.Start(); WScript.echo("Started: Web server '" + WComment + "' (Physical root=" + WRoot + ", Port=" + WPort[0] + ")."); }
WScript.quit(0);
// Displays usage message, then QUITS
function UsageMsg() { WScript.echo("Usage: cscript mkwebsrv.js <rootdir> [-n <instancenum>][-c <comment>][-p <portnum>][-X (don't start)]"); WScript.quit(); }
|