2025-11-28 00:35:46 +09:00

226 lines
6.7 KiB
JavaScript

/*---------------------------------------------------------------------
Copyright (C) Microsoft Corporation. All rights reserved.
Script name : Rename Publishing Point (renamepub)
Script version : 1.0
Description : This script renames the publishing point on the
specified server to a new name.
Command line parameters :
[-s <Server1>] -p <pub1> -n <newpub1>
where -s represents target server, -p represents publishing point name,
-n represents new name for that publishing point.
Example : renamepub -s s4 -p pub1 -n newpub1
Returns :
1. Usage: renamepub [-s <Server1>] -p <pub1> -n <newpub1>
2. Server %server% is not a valid WMS Server
3. Src Publishing Point %pubname% etc is not a valid publishing point
4. Destination Publishing Point %newpubname% already exists. Please use a new name
OS Requirements : Windows Server 2003 (all versions)
Software requirements : WMS Server
Scripting Engine : Jscript
---------------------------------------------------------------------*/
WMS_PUBLISHING_POINT_TYPE_ON_DEMAND = 1;
WMS_PUBLISHING_POINT_TYPE_BROADCAST = 2;
var objServer = null;
var objPubPoint = null;
var dwWhichArg = 0;
var dwNumPubPoints = 0;
var szArgServer = "";
var szArgNewPubPoint = "";
var szArgOldPubPoint = "";
var szEachArgument = "";
var szEachPubPointName = "";
var szTemp = "";
var flag = 0;
var bCheckedArgP = false;
var bCheckedArgN = false;
var bNameAlreadyInUse = false;
var objArgs = WScript.Arguments;
var dwNumArgs = WScript.Arguments.length;
if(WScript.Arguments.length == 0)
{
DisplayUsage();
}
// Parse the command to seperate out the server name and publishing points.
while( dwWhichArg < WScript.Arguments.length )
{
szEachArgument = objArgs( dwWhichArg );
if( szEachArgument.toLowerCase()== "-s" )
{
dwWhichArg = dwWhichArg + 1;
if(dwWhichArg >=WScript.Arguments.length) //ex: renamepub -p p1 -s
{
DisplayUsage();
}
szEachArgument = objArgs(dwWhichArg);
if((szEachArgument.toLowerCase()== "-p")||(szEachArgument.toLowerCase()== "-n")) //if next szEachArgument is -p, display usage : since syntax is wrong
{
// dwWhichArg = dwWhichArg - 1; //come back to previous szEachArgument.
DisplayUsage();
}
else
{
//accept only one server name
if(szEachArgument.lastIndexOf(",")== -1)
{
szArgServer = szEachArgument;
}
else
{
DisplayUsage();
}
}
}
else if(szEachArgument.toLowerCase()== "-p")
{
bCheckedArgP = true;
dwWhichArg = dwWhichArg + 1;
if(dwWhichArg >=WScript.Arguments.length) //ex: renamepub -s s1 -p
{
DisplayUsage();
}
szEachArgument = objArgs(dwWhichArg);
if((szEachArgument.toLowerCase()== "-s")||(szEachArgument.toLowerCase()== "-n")) //if next szEachArgument is -s, display usage : since syntax is wrong
{
// dwWhichArg = dwWhichArg - 1; //come back to previous szEachArgument.
DisplayUsage();
}
else
{
//accept only one server name
if(szEachArgument.lastIndexOf(",")== -1)
{
szArgOldPubPoint = szEachArgument;
}
else
{
DisplayUsage();
}
}
}
else if(szEachArgument.toLowerCase()== "-n")
{
bCheckedArgN = true;
dwWhichArg = dwWhichArg + 1;
if(dwWhichArg >=WScript.Arguments.length) //ex: renamepub -p p1 -n
{
DisplayUsage();
}
szEachArgument = objArgs(dwWhichArg);
if((szEachArgument.toLowerCase()== "-p")||(szEachArgument.toLowerCase()== "-s")) //if next szEachArgument is -s, display usage : since syntax is wrong
{
// dwWhichArg = dwWhichArg - 1; //come back to previous szEachArgument.
DisplayUsage();
}
else
{
//accept only one server name
if(szEachArgument.lastIndexOf(",")== -1)
{
szArgNewPubPoint = szEachArgument;
}
else
{
DisplayUsage();
}
}
}
else // if argument is not -p,-s i.e. if it is an invalid argument
{
DisplayUsage();
}
dwWhichArg = dwWhichArg + 1;
}
if((!bCheckedArgP)||(!bCheckedArgN)) //Ex: renamepub -s "s1" and -p or -n part is missing.
{
DisplayUsage();
}
// Connect to Server
//i.e. if server name is not mentioned, then start Publishing points on localhost
if( szArgServer == "" )
{
szArgServer="LocalHost"
}
objServer = new ActiveXObject( "WMSServer.server", szArgServer );
Trace("Renaming Publishing Points at "+szArgServer);
//Search old Publishing Point
flag = 0;
bNameAlreadyInUse = false;
dwNumPubPoints = objServer.PublishingPoints.Count;
var i = 0;
while( i < dwNumPubPoints )
{
szEachPubPointName = objServer.PublishingPoints.item( i ).name;
if( szArgOldPubPoint.toLowerCase() == szEachPubPointName.toLowerCase() )
{
flag = 1;
}
if( szArgNewPubPoint.toLowerCase() == szEachPubPointName.toLowerCase() )
{
bNameAlreadyInUse = true;
}
i = i + 1;
}
if( flag == 0 )
{
szTemp = "Publishing Point "+szArgOldPubPoint+" does not exist ";
Trace(szTemp);
WScript.Quit(1);
}
else //flag = 1
{
if( bNameAlreadyInUse )
{
szTemp = "A publishing point by the name of "+ szArgNewPubPoint +" already exists";
Trace(szTemp);
WScript.Quit(1);
}
else // flag==1 and flagexist == 0
{
RenamePubPoint();
}
}
function RenamePubPoint()
{
var i =0;
while( i < dwNumPubPoints )
{
objPubPoint = objServer.PublishingPoints.item( i ).name;
if(szArgOldPubPoint.toLowerCase() == objPubPoint.toLowerCase())
{
//rename the publishing point
objServer.PublishingPoints.item( i ).name = szArgNewPubPoint ;
szTemp = szArgOldPubPoint +" is renamed as " + szArgNewPubPoint;
Trace(szTemp);
break;
}
i = i + 1;
}
}
function DisplayUsage()
{
Trace("Usage: renamepub [-s <Server1>] -p <pub1> -n <newpub1> ");
Trace("Only one server name is accepted. ");
Trace("If server name is not mentioned, local host is the default server ");
WScript.Quit(1);
}
function Trace(Msg)
{
WScript.Echo(Msg);
}