Leaked source code of windows server 2003
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.
 
 
 
 
 
 

1474 lines
46 KiB

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'-------------------------------------------------------------------------
' id_prop.asp: Page for changing the Device Name and Domain Name
'
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Date Description
' 21-Jul-2000 Created date
' 05-Mar-2001 Modified date
' 24-Mar-2001 Modified date
'-------------------------------------------------------------------------
%>
<!-- #include virtual="/admin/inc_framework.asp" -->
<!-- #include file="loc_deviceid.asp" -->
<%
'-------------------------------------------------------------------------
' Form Variables
'-------------------------------------------------------------------------
Dim F_strDeviceName 'Device Name from the form
Dim F_strAppleTalkName 'Name of Computer in Apple Talk
Dim F_strNetWareName 'Name of Computer in NetWare
Dim F_strWorkGroup 'Workgroup Name
Dim F_strDomain 'Domain Name
Dim F_strDefaultDNS 'Default DNS
Dim F_strUserName 'User Name
Dim F_strPassword 'Password
Dim F_strRadio 'Radio button value(Workgroup/Domain)
Dim F_strOriginalStatus 'variable for storing original status of
'the machine(Workgroup/Domain)
Dim F_strRebootState 'Indicate if Reboot required or not
'-------------------------------------------------------------------------
' Global Variables
'-------------------------------------------------------------------------
Dim page 'Variable that receives the output page object when
'creating a page
Dim rc 'Return value for CreatePage
Dim G_bAppleTalkInstalled 'Indicate if AppleTalk is installed or not
Dim G_bNetWareInstalled 'Indicate if NetWare is installed or not
'-------------------------------------------------------------------------
' Error constants
'-------------------------------------------------------------------------
Const N_DUPLICATECOMPUTERNAME_ERRNO1 = &H800708B0
Const N_DUPLICATECOMPUTERNAME_ERRNO2 = &H80070034
Const N_INVALIDDOMAIN_ERRNO = &H8007054B
Const N_DOMAININVALIDDOMAINPERMISSIONDENIES_ERRNO = 70
Const N_INVALIDCREDENTIALS_ERRNO = &H8007052E
Const N_DOMAININVALIDDOMAIN_ERRNO = &H80070520
Const N_UNEXPECTED_COMPUTERNAMEERROR = &H8007092F
Const N_DNSNAMEINVALID_ERRNO = 5
Const N_DOMAINNAMESYSTAX_ERRNO = &H8007007B
Const N_UNSPECIFIED_ERRNO = &H80004005
Const CONST_APPLETALK_SERVICENAME ="MacFile"
Const CONST_NETWARE_SERVICENAME ="FPNW"
Const CONST_HTTPS_OFF ="OFF"
Const CONST_YES ="Yes"
Const CONST_NO ="No"
Const CONST_WORKGROUP ="Workgroup"
Const CONST_DOMAIN ="Domain"
Const CONST_APPLETALK_REGKEYPATH ="SYSTEM\CurrentControlSet\Services\MacFile\Parameters"
Const CONST_NETWARE_REGKEYPATH ="SYSTEM\CurrentControlSet\Services\FPNW\Parameters"
rc = SA_CreatePage(L_TASKTITLE_TEXT, "", PT_PROPERTY, page)
if rc = SA_NO_ERROR then
Call SA_ShowPage(page)
End if
'-------------------------------------------------------------------------
'Function: OnInitPage()
'Description: Called to signal first time processing for this page.
' Used to do first time initialization tasks
'Input Variables: PageIn,EventArg
'Output Variables: PageIn,EventArg
'Returns: True/False
'Global Variables: F_strRebootState
'-------------------------------------------------------------------------
Public Function OnInitPage(ByRef pageIn, ByRef EventArg)
On Error Resume Next
Err.Clear
Call GetSystemSettings()
Call AppleTalkNetWare()
Call GetAppleTalkNetWareSettings()
F_strRebootState = CONST_NO
OnInitPage = TRUE
End Function 'End of Set Variables From System Function
'-------------------------------------------------------------------------
'Function: OnServePropertyPage()
'Description: Called when the page needs to be served.Use this
' method to serve content
'Input Variables: PageIn,EventArg
'Output Variables: None
'Returns: True/False
'Global Variables: None
'-------------------------------------------------------------------------
Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
%>
<script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js"></script>
<script language="JavaScript">
var strTemp = "<%=server.HTMLEncode(F_strRadio)%>";
var bAppleDeviceNameEqual = false;
var bNetWareDeviceNameEqual = false;
var strAppleTalkonLoad;
var strNetWareonLoad;
var nNetWareNameLen;
// used as constants
var CONST_APPLETALKNETWARENAME = 1;
var CONST_SANAME = 2;
var CONST_DNSDOMAINNAME = 3;
var CONST_USERNAME = 4;
var CONST_WORKGROUPNAME = 5;
var CONST_DOMAIN = "Domain";
//Init Function
function Init()
{
var objDevicename = document.frmTask.txtdevicename;
var strDeviceName = objDevicename.value;
var strNetWareSliced
//If AppleTalk Installed
"<%IF G_bAppleTalkInstalled = True then %>"
strAppleTalkonLoad = document.frmTask.txtappletalkname.value
//Check if Windows Device Name and AppleTalk DeviceName is the same
if (Trim(strDeviceName).toUpperCase() == Trim(strAppleTalkonLoad).toUpperCase())
{
bAppleDeviceNameEqual = true
}
"<%end if %>"
//If NetWare Installed
"<%IF G_bNetWareInstalled = True then %>"
strNetWareonLoad = document.frmTask.txtnetwarename.value
nNetWareNameLen = Trim(strNetWareonLoad).length
strNetWareSliced = strNetWareonLoad.slice(0,nNetWareNameLen - 3)
//Check if Windows Device Name and NetWare DeviceName is the same
if (Trim(strDeviceName).toUpperCase() == Trim(strNetWareSliced).toUpperCase())
{
bNetWareDeviceNameEqual = true
}
"<%end if %>"
//checking whether for the first time or not
if(Trim(strTemp)=="")
{
//Selects radiobutton value from originalstatus(Machine)
var temp_strOriginalStatus;
temp_strOriginalStatus=document.frmTask.hdnOriginalStatus.value;
}
else
{
temp_strOriginalStatus=strTemp;
}
//checking the Radio button ( domain or workgroup)
if(temp_strOriginalStatus.toUpperCase()==CONST_DOMAIN.toUpperCase())
{
document.frmTask.radiodomainorworkgroup[1].checked=true;
document.frmTask.txtworkgroup.style.backgroundColor="lightgrey";
if(strTemp!="")
{
EnableUserPasswordControls();
document.frmTask.txtdomainusername.style.backgroundColor="";
document.frmTask.pwdomainuserpw.style.backgroundColor="";
}
}
else
{
document.frmTask.radiodomainorworkgroup[0].checked=true;
document.frmTask.txtdomain.style.backgroundColor="lightgrey";
}
if(document.frmTask.txtdomain.value =="")
{
document.frmTask.txtworkgroup.disabled=false;
document.frmTask.txtdomain.disabled =true;
}
else
{
document.frmTask.txtworkgroup.disabled=true;
document.frmTask.txtdomain.disabled =false;
}
//Getting the initial focus to Devicename
document.frmTask.txtdevicename.focus();
SetPageChanged(false);
} /* end of Init */
// validates user entry
function ValidatePage()
{
var objDevicename = document.frmTask.txtdevicename;
var strDeviceName = objDevicename.value;
var objWorkgroup = document.frmTask.txtworkgroup;
var strWorkGroup = objWorkgroup.value;
var objDefaultdns = document.frmTask.txtdefaultdns;
var strDefaultDNS = objDefaultdns.value;
var objDomain = document.frmTask.txtdomain;
var strDomain = objDomain.value;
var objUser = document.frmTask.txtdomainusername;
var strUser = objUser.value;
var arrDomainUser
var strDomainUser
strDeviceName = RTrimtext(LTrimtext(strDeviceName))
strDefaultDNS = RTrimtext(LTrimtext(strDefaultDNS))
strWorkGroup = RTrimtext(LTrimtext(strWorkGroup))
strDomain = RTrimtext(LTrimtext(strDomain))
strUser = RTrimtext(LTrimtext(strUser))
//Validating for empty Hostname
if(Trim(strDeviceName).length<=0)
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DEVICENAMEBLANK_ERRORMESSAGE))%>');
objDevicename.onkeypress=ClearErr;
selectFocus(objDevicename);
return false;
}
//Validating for invalid characters in Hostname
if (!IsComputerNameValid(strDeviceName))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINDEVICENAME_ERRORMESSAGE))%>')
objDevicename.onkeypress=ClearErr;
selectFocus(objDevicename);
return false;
}
//Validating for numbers in Hostname
if(!isNaN(strDeviceName))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DEVICENAMEISNUMBER_ERRORMESSAGE))%>');
objDevicename.onkeypress=ClearErr;
selectFocus(objDevicename);
return false;
}
// Validating for invalid characters in DNS Suffix
if (!IsDNSNameValid(strDefaultDNS))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINDNSSUFFIX_ERRORMESSAGE))%>')
objDefaultdns.onkeypress=ClearErr;
selectFocus(objDefaultdns);
return false;
}
//Validating for numbers in DNS suffix
if(Trim(strDefaultDNS).length>0 && !isNaN(strDefaultDNS))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DNSSUFFIXISNUMBER_ERRORMESSAGE))%>');
objDefaultdns.onkeypress=ClearErr;
selectFocus(objDefaultdns);
return false;
}
//Validating for empty Workgroup
if(document.frmTask.radiodomainorworkgroup[0].checked==true &&
Trim(strWorkGroup)=="")
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_BLANKWORKGROUP_ERRORMESSAGE))%>');
objWorkgroup.onkeypress=ClearErr;
selectFocus(objWorkgroup);
return false;
}
// Validating for invalid characters in Workgroup
if ((!checkKeyforValidCharacters(strWorkGroup,CONST_WORKGROUPNAME))&&
frmTask.radiodomainorworkgroup[0].checked==true)
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINWORKGROUP_ERRORMESSAGE))%>');
objWorkgroup.onkeypress=ClearErr;
selectFocus(objWorkgroup);
return false;
}
//Validating for empty Domain
if(document.frmTask.radiodomainorworkgroup[1].checked==true &&
Trim(strDomain)=="")
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DOMIANNAMEBLANK_ERRORMESSAGE))%>');
objDomain.onkeypress=ClearErr;
selectFocus(objDomain);
return false;
}
// Validating for invalid characters in Domain
if ((!checkKeyforValidCharacters(strDomain,CONST_DNSDOMAINNAME))&&
(frmTask.radiodomainorworkgroup[1].checked==true))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINDOMAIN_ERRORMESSAGE))%>');
objDomain.onkeypress=ClearErr;
selectFocus(objDomain);
return false;
}
// Validating for invalid characters in User
if ( (!checkKeyforValidCharacters(strUser,CONST_USERNAME)) &&
(document.frmTask.radiodomainorworkgroup[1].checked==true))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINUSERNAME_ERRORMESSAGE))%>');
objUser.onkeypress=ClearErr;
selectFocus(objUser);
return false;
}
//Function checks for same Host name and Workgroup
if((document.frmTask.radiodomainorworkgroup[0].checked==true) &&
(strWorkGroup.toUpperCase()==strDeviceName.toUpperCase()))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_HOSTNAMEANDWORKGROUPNAMESAME_ERRORMESSAGE))%>'); objDevicename.onkeypress=ClearErr;
objWorkgroup.onkeypress=ClearErr;
selectFocus(objDevicename);
return false;
}
//Function checks for user name and password when domain checked
//and the values of any field changed
if((document.frmTask.radiodomainorworkgroup[1].checked==true)
&&
(Trim(strUser)=="") && ((Trim(strDomain) !="<%=F_strDomain%>")
||(strDeviceName !="<%=F_strDeviceName%>")))
{
EnableUserPasswordControls();
document.frmTask.txtdomainusername.style.backgroundColor="";
document.frmTask.pwdomainuserpw.style.backgroundColor="";
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_NOTES_HTML_TEXT))%>');
objDevicename.onkeyup=ClearErr;
objDefaultdns.onkeyup=ClearErr;
objDomain.onkeyup=ClearErr;
objWorkgroup.onkeypress=ClearErr;
objUser.onkeypress=ClearErr;
selectFocus(objUser);
return false;
}
"<%IF G_bAppleTalkInstalled = True then %>"
var objAppleTalkName = document.frmTask.txtappletalkname;
var strAppleTalkName = objAppleTalkName.value;
strAppleTalkName = RTrimtext(LTrimtext(strAppleTalkName))
//Validating for invalid characters in AppleTalk Hostname
if (!checkKeyforValidCharacters(strAppleTalkName,CONST_APPLETALKNETWARENAME))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINAPPLETALKNAME_ERRORMESSAGE))%>')
objAppleTalkName.onkeypress=ClearErr;
selectFocus(objAppleTalkName);
return false;
}
//Validating for empty Hostname
if(Trim(strAppleTalkName)=="")
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_APPLETALKNAMEBLANK_ERRORMESSAGE))%>');
objAppleTalkName.onkeypress=ClearErr;
selectFocus(objAppleTalkName);
return false;
}
//Validating for numbers in AppleTalk Hostname
if(!isNaN(strAppleTalkName))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINAPPLETALKNAME_ERRORMESSAGE))%>');
objAppleTalkName.onkeypress=ClearErr;
selectFocus(objAppleTalkName);
return false;
}
"<%end if%>"
"<%IF G_bNetWareInstalled = True then %>"
var objNetWareName = document.frmTask.txtnetwarename;
var strNetWareName = objNetWareName.value;
strNetWareName = RTrimtext(LTrimtext(strNetWareName))
//Validating for invalid characters in NetWare Hostname
if (!checkKeyforValidCharacters(strNetWareName,CONST_APPLETALKNETWARENAME))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINNETWARENAME_ERRORMESSAGE))%>')
objNetWareName.onkeypress=ClearErr;
selectFocus(objNetWareName);
return false;
}
//Validating for empty NetWare Hostname
if(Trim(strNetWareName)=="")
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_NETWARENAMEBLANK_ERRORMESSAGE))%>');
objNetWareName.onkeypress=ClearErr;
selectFocus(objNetWareName);
return false;
}
//Validating for numbers in NetWare Hostname
if(!isNaN(strNetWareName))
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINNETWARENAME_ERRORMESSAGE))%>');
objNetWareName.onkeypress=ClearErr;
selectFocus(objNetWareName);
return false;
}
//Validating for the Windows Hostname and NetWare Hostname
if (strNetWareName.toUpperCase() == strDeviceName.toUpperCase())
{
SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_WINDOWSNETWAREEQUALNAME_ERRORMESSAGE))%>');
selectFocus(objNetWareName);
return false;
}
"<%end if%>"
return true;
}//end of Validate page*/
//Setdata Function for Framework
function SetData()
{
//Disabling Cancel button when user selects OK button
DisableCancel()
"<%IF G_bAppleTalkInstalled = True then %>"
if ( (document.frmTask.txtappletalkname.value).toUpperCase() != (strAppleTalkonLoad).toUpperCase())
{
document.frmTask.hdnRebootState.value = "Yes"
}
"<%end if %>"
"<%IF G_bNetWareInstalled = True then %>"
if ( (document.frmTask.txtnetwarename.value).toUpperCase() != (strNetWareonLoad).toUpperCase() )
{
document.frmTask.hdnRebootState.value = "Yes"
}
"<%end if %>"
}
//This function Disables and enables Workgroup and
//Domain when clicked on the respective radiobuttons
function DisableWorkandDomaingroup(objVal)
{
SetPageChanged(true);
strVal=objVal.value; //assigning the value
if(strVal=="domain")
{
EnableUserPasswordControls();
document.frmTask.txtdomain.disabled = false;
document.frmTask.txtworkgroup.disabled = true;
document.frmTask.txtworkgroup.style.backgroundColor="lightgrey";
document.frmTask.txtdomain.style.backgroundColor="";
document.frmTask.txtdomain.focus();
document.frmTask.txtdomain.select();
}
else
{
document.frmTask.txtworkgroup.disabled = false;
document.frmTask.txtdomain.disabled = true;
document.frmTask.txtworkgroup.focus();
document.frmTask.txtworkgroup.select();
document.frmTask.txtdomainusername.disabled= true;
document.frmTask.pwdomainuserpw.disabled= true;
document.frmTask.txtworkgroup.style.backgroundColor="";
document.frmTask.txtdomain.style.backgroundColor="lightgrey";
document.frmTask.txtdomainusername.style.backgroundColor="lightgrey";
document.frmTask.pwdomainuserpw.style.backgroundColor="lightgrey";
}
}
function IsComputerNameValid(strName)
{
try
{
var pattern = "[^A-Z0-9-]";
var exp = new RegExp(pattern, "i");
var rc = exp.test(strName);
if ( rc == null )
{
return false;
}
else
{
//
// If the test was successful then the
// input contained invalid data.
return ( rc ? false : true);
}
}
catch(oException)
{
return false;
}
}
function IsDNSNameValid(strName)
{
try
{
var pattern = "[^A-Z0-9-\.]";
var exp = new RegExp(pattern, "i");
var rc = exp.test(strName);
if ( rc == null )
{
return false;
}
else
{
//
// If the test was successful then the
// input contained invalid data.
return ( rc ? false : true);
}
}
catch(oException)
{
return false;
}
}
//To check for Invalid Characters
function checkKeyforValidCharacters(strName,nType)
{
var nLength = strName.length;
var nFwdslashCount = 0
if (nLength > 0)
{
var colonvalue;
colonvalue = 0;
//Validating DNS and Domain names
if (nType == CONST_DNSDOMAINNAME)
{
for(var i=0; i<nLength;i++)
{
charAtPos = strName.charCodeAt(i);
if(charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 32)
{
return false
}
}
}
else
{
//Validating Workgroup name
if (nType == CONST_WORKGROUPNAME)
{
for(var i=0; i<nLength;i++)
{
charAtPos = strName.charCodeAt(i);
if(charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 )
{
return false
}
}
}
else
{
//Validating User name
if(nType == CONST_USERNAME)
{
for(var i=0; i<nLength;i++)
{
charAtPos = strName.charCodeAt(i);
if (charAtPos == 47 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 46)
{
return false
}
if (charAtPos == 92)
{
nFwdslashCount = nFwdslashCount + 1
if (nFwdslashCount > 1 )
{
return false
}
}
}
}
else
{
//Validating for AppleTalk and NetWare names
if(nType == CONST_APPLETALKNETWARENAME)
{
for(var i=0; i<nLength;i++)
{
charAtPos = strName.charCodeAt(i);
if (charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 46 || charAtPos == 32)
{
return false
}
}
}
else
{
//Validation for Server appliance name
if(nType == CONST_SANAME)
{
for(var i=0; i<nLength;i++)
{
charAtPos = strName.charCodeAt(i);
if (charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 46 || charAtPos == 32 || charAtPos == 33 || charAtPos == 39)
{
return false
}
}
}
else
{
for(var i=0; i<nLength;i++)
{
charAtPos = strName.charCodeAt(i);
if(charAtPos == 58)
{
return false
}
}
}
}
}
}
}
}
return true
}
//This Function enables the DomainUsername and Password
function EnableUserPasswordControls()
{
if(document.frmTask.radiodomainorworkgroup[1].checked==true)
{
document.frmTask.txtdomainusername.disabled = false;
document.frmTask.pwdomainuserpw.disabled = false;
document.frmTask.txtdomainusername.style.backgroundColor="";
document.frmTask.pwdomainuserpw.style.backgroundColor="";
}
}
//For Device Name Change
function OnDeviceNameChange()
{
SetPageChanged(true);
EnableUserPasswordControls();
"<%IF G_bAppleTalkInstalled = True then %>"
if (bAppleDeviceNameEqual == true)
{
document.frmTask.txtappletalkname.value = document.frmTask.txtdevicename.value
}
"<%End If%>"
"<%IF G_bNetWareInstalled = True then %>"
if (bNetWareDeviceNameEqual == true)
{
document.frmTask.txtnetwarename.value = document.frmTask.txtdevicename.value + "_NW"
}
"<%End If%>"
}
//------------------------------------------------------------------------
// Function :LTrimtext
// Description :function to remove left trailing spaces
// input :String
// returns :String
//------------------------------------------------------------------------
function LTrimtext(str)
{
var res="", i, ch, index;
x = str.length;
index = "false";
for (i=0; i < str.length; i++)
{
ch = str.charAt(i);
if (index == "false")
{
if (ch != ' ')
{
index = "true";
res = ch;
}
}
else
{
res = res + ch;
}
}
return res;
}
//------------------------------------------------------------------------
// Function :RTrimtext
// Description :function to remove right trailing spaces
// input :String
// returns :String
//------------------------------------------------------------------------
function RTrimtext(str)
{
var res="", i, ch, index, j, k;
x = str.length;
index = "false";
if(x==0 || x==1)
return str;
for(i=x; i >= 0; i--)
{
ch = str.charAt(i);
if (index == "false")
{
if( (ch == ' ') || (ch == '') )
{
continue;
}
else
{
index = "true";
j = i;
}
}
if (index == "true")
{
for(k=0; k<=j; k++)
{
res = res + str.charAt(k);
}
return res;
}
}
}
</script>
<table border="0" cellspacing="0" cellpadding="0" width=50%>
<tr>
<td class="TasksBody" colspan="4">
<%CheckForSecureSite()%>
<br>
</td>
</tr>
<tr>
<td class="TasksBody" nowrap>
<%=server.HTMLEncode(L_DEVICENAME_TEXT)%>
</td>
<td class="TasksBody" nowrap colspan="3">
<input type="text" name="txtdevicename" class="FormField" onKeyUP="OnDeviceNameChange()" size="25" maxlength="63"
value="<%=server.HTMLEncode(F_strDeviceName)%>"
>
</td>
</tr>
<tr>
<td class="TasksBody" nowrap>
<%=server.HTMLEncode(L_DEFAULTDNS_TEXT)%>
</td>
<td class="TasksBody" nowrap colspan="3">
<input type="text" name="txtdefaultdns" class="FormField" onChange="SetPageChanged(true);" size="25" maxlength="155"
value="<%=server.HTMLEncode(F_strDefaultDNS)%>" >
</td>
</tr>
<tr>
<td class="TasksBody" colspan="4">
<hr>
</td>
</tr>
<tr>
<td class="TasksBody" nowrap >
<%=server.HTMLEncode(L_MEMBEROF_TEXT)%>
</td>
<td class="TasksBody" nowrap colspan="2" >
<input type="radio" name="radiodomainorworkgroup" class="FormRadioButton" value="workgroup"
onClick="DisableWorkandDomaingroup(this)" >
<%=server.HTMLEncode(L_WORKGROUP_TEXT)%>
</td>
<td class="TasksBody" nowrap >
<input type="text" name="txtworkgroup" class="FormField" onChange="SetPageChanged(true);" size="25" maxlength="15"
value="<%=server.HTMLEncode(F_strWorkGroup)%>" >
</td>
</tr>
<tr>
<td class="TasksBody" nowrap> &nbsp;
</td>
<td class="TasksBody" nowrap colspan="2">
<input type="radio" name="radiodomainorworkgroup" class="FormRadioButton" value="domain"
onClick="DisableWorkandDomaingroup(this);" >
<%=server.HTMLEncode(L_DOMAIN_TEXT) %>
</td>
<td class="TasksBody" nowrap>
<input type="text" name="txtdomain" class="FormField" onKeyUP="EnableUserPasswordControls();" size="25" maxlength="155"
value="<%=server.HTMLEncode(F_strDomain)%>" >
</td>
</tr>
<tr>
<td class="TasksBody" nowrap>&nbsp;
</td>
<td class="TasksBody" colspan="3">
<%=Server.HTMLEncode(L_USERWITHPERMISSION_TEXT)%>
</td>
</tr>
<tr>
<td class="TasksBody" nowrap width="20%">&nbsp;
</td>
<td class="TasksBody" nowrap width="3%">&nbsp;
</td>
<td class="TasksBody" nowrap width="15%">
<%=Server.HTMLEncode(L_ADMINUSERNAME_TEXT)%>
</td>
<td class="TasksBody" nowrap >
<input type="text" class="FormField" name="txtdomainusername" onChange="SetPageChanged(true);" onKeyPress="ClearErr();" value="<%=server.HTMLEncode(F_strUserName)%>" size="25" maxlength="256" disabled style="background-color:lightgrey">
</td>
</tr>
<tr>
<td class="TasksBody" nowrap>&nbsp;
</td>
<td class="TasksBody" nowrap>&nbsp;
</td>
<td class="TasksBody" nowrap>
<%=Server.HTMLEncode(L_ADMINPASSWORD_TEXT)%>
</td>
<td class="TasksBody" nowrap>
<input type="password" name="pwdomainuserpw" class="FormField" onChange="SetPageChanged(true);" size="25" maxlength="35" disabled style="background-color:lightgrey">
</td>
</tr>
<tr>
<td class="TasksBody" >
&nbsp;
</td>
</tr>
<tr>
<td class="TasksBody" colspan="4">
<hr>
</td>
</tr>
<% If G_bAppleTalkInstalled = True then %>
<tr>
<td class="TasksBody" nowrap>
<%=server.HTMLEncode(L_APPLETALKNAME_TEXT)%>
</td>
<td class="TasksBody" colspan="3">
<input type="text" name="txtappletalkname" class="FormField" size="25" maxlength="31"
value="<%=Server.HTMLEncode(F_strAppleTalkName)%>" >
</td>
</tr>
<% End If %>
<% IF G_bNetWareInstalled = True then %>
<tr>
<td class="TasksBody" nowrap>
<%=server.HTMLEncode(L_NETWARENAME_TEXT)%>
</td>
<td class="TasksBody" colspan="3">
<input type="text" name="txtnetwarename" class="FormField" size="25" maxlength="47"
value="<%=Server.HTMLEncode(F_strNetWareName)%>" >
</td>
</tr>
<% End If %>
</table>
<input type="hidden" name="hdnOriginalStatus" value="<%=F_strOriginalStatus%>">
<input type="hidden" name="hdnRebootState" value="<%=F_strRebootState%>">
<%
OnServePropertyPage = True
End Function
'-------------------------------------------------------------------------
'Function: OnPostBackPage()
'Description: Called to signal that the page has been posted-back.
'Input Variables: PageIn, EventArg
'Output Variables: PageIn, EventArg, F_(*)
'Returns: True/False
'Global Variables: F_(*)
'-------------------------------------------------------------------------
Public Function OnPostBackPage(ByRef PageIn,ByRef EventArg)
F_strDeviceName = Trim(Request.Form("txtdevicename"))
F_strAppleTalkName = Trim(Request.Form("txtappletalkname"))
F_strNetWareName = Trim(Request.Form("txtnetwarename"))
F_strWorkGroup = Trim(Request.Form("txtworkgroup"))
F_strDomain = Trim(Request.Form("txtdomain"))
F_strDefaultDNS = Trim(Request.Form("txtdefaultdns"))
F_strUserName = Trim(Request.Form("txtdomainusername"))
F_strPassword = Trim(Request.Form("pwdomainuserpw"))
F_strRadio = Trim(Request.Form("radiodomainorworkgroup"))
F_strOriginalStatus = Trim(Request.Form("hdnOriginalStatus"))
F_strRebootState = Trim(Request.Form("hdnRebootState"))
OnPostBackPage = TRUE
End Function
'-----------------------------------------------------------------------------
'Function: OnSubmitPage()
'Description: Called when the page has been submitted for processing.
' Use this method to process the submit request.
'Input Variables: PageIn, EventArg
'Output Variables: PageIn, EventArg
'Returns: True/False
'Global Variables: None
'-----------------------------------------------------------------------------
Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
Dim objSystem 'System Object
Set objSystem = CreateObject("comhelper.SystemSetting")
If not SetSystemSettings(objSystem) then
onSubmitPage = False
Set objSystem = nothing
Exit Function
End If
Call AppleTalkNetWare()
If not IsRestartReq(objSystem) Then
onSubmitPage = False
Set objSystem = nothing
Exit Function
End If
Set objSystem = nothing
OnSubmitPage = True
End Function
'-------------------------------------------------------------------------
'Function: OnClosePage()
'Description: Called when the page is about to be closed.Use this
' method to perform clean-up processing
'Input Variables: PageIn,EventArg
'Output Variables: None
'Returns: True/False
'Global Variables: None
'-------------------------------------------------------------------------
Public Function OnClosePage(ByRef PageIn,ByRef EventArg)
OnClosePage=TRUE
End Function
'-------------------------------------------------------------------------
'Sub routine: AppleTalkNetWare
'Description: To check whether required services are installed or not
'Input Variables: None
'Output Variables: None
'Returns: None
'Global Variables: Out:G_bAppleTalkInstalled
' Out:G_bNetWareInstalled
' In:CONST_APPLETALK_SERVICENAME
' In:CONST_NETWARE_SERVICENAME
' In:CONST_WMI_WIN32_NAMESPACE
' In:L_(*)
'-------------------------------------------------------------------------
Sub AppleTalkNetWare()
On Error Resume Next
Err.Clear
Dim objWMIConnection
Dim strProtocol
Dim strPath
Dim strServerName
Set objWMIConnection = getWMIConnection(CONST_WMI_WIN32_NAMESPACE)
'Incase connection fails
If Err.number <> 0 Then
Call SA_ServeFailurePageEx(L_FAILEDTOGETWMICONNECTION_ERRORMESSAGE, mstrReturnURL )
Exit Sub
End If
G_bAppleTalkInstalled = SA_IsServiceInstalled(CONST_APPLETALK_SERVICENAME)
G_bNetWareInstalled = SA_IsServiceInstalled(CONST_NETWARE_SERVICENAME)
Set objWMIConnection = nothing
End Sub
'-------------------------------------------------------------------------
'Function: GetSystemSettings
'Description: To get the System Settings using a Com Object
'Input Variables: None
'Output Variables: None
'Returns: None
'Global Variables: F_(*), L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE
' L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE
'-------------------------------------------------------------------------
Function GetSystemSettings()
On Error Resume Next
Err.Clear
Dim objSystem
Dim objComputer
Set objSystem = CreateObject("comhelper.SystemSetting")
If Err.Number <> 0 Then
Call SA_ServeFailurePageEx(L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE, mstrReturnURL)
Exit Function
End If
Set objComputer = objSystem.Computer
If Err.Number <> 0 Then
Call SA_ServeFailurePageEx(L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE, mstrReturnURL )
Exit Function
End If
F_strDeviceName = objComputer.ComputerName
F_strDomain = objComputer.DomainName
'Incase Domain returns null then an error number -2147467259
If Err.number = N_UNSPECIFIED_ERRNO then
Err.Clear
End If
F_strWorkGroup = objComputer.WorkgroupName
'Incase Workgroup returns null then an error number -2147467259
If Err.number = N_UNSPECIFIED_ERRNO then
Err.Clear
End If
F_strDefaultDNS = objComputer.FullQualifiedComputerName
LTrim(F_strDomain)
LTrim(F_strWorkGroup)
'Assigning the original status(Domain/Workgroup)
If LTrim(F_strDomain) <> "" Then
F_strOriginalStatus = CONST_DOMAIN
Else
F_strOriginalStatus = CONST_WORKGROUP
End If
'Assigning the DNS value
If IsNull(F_strDefaultDNS) = False Then
Dim DNSlen, Devicelen
DNSlen = Len(F_strDefaultDNS)
Devicelen = Len(F_strDeviceName)
DNSlen = DNSlen - Devicelen - 1
If DNSlen < 0 Then
DNSlen = 0
End If
F_strDefaultDNS = Right(F_strDefaultDNS, DNSlen)
End If
Set objComputer = Nothing
Set objSystem = Nothing
End Function
'-------------------------------------------------------------------------
'Function: SetSystemSettings
'Description: To set the System Settings using a Com Object
'Input Variables: objSystem
'Output Variables: None
'Returns: True/False
'Global Variables: F_(*), L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE
' L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE
' L_LOGONINFOFAILED_ERRORMESSAGE
'-------------------------------------------------------------------------
Function SetSystemSettings(objSystem)
On Error Resume Next
Err.Clear
Dim objComputer
SetSystemSettings = False
If Err.Number <> 0 Then
SA_SetErrMsg L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE &_
"( " & Hex(Err.number)& " )"
objComputer = nothing
Exit Function
End If
'get the computer object
Set objComputer=objSystem.Computer
If Err.Number <> 0 Then
SA_SetErrMsg L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE &_
"(" & Hex(Err.Number)& " )"
objComputer = nothing
Exit Function
End If
'Assigning the Host name
objComputer.ComputerName=F_strDeviceName
'If DNS Suffix is not empty/If DNS Suffix is empty
If F_strDefaultDNS <> "" Then
objComputer.FullQualifiedComputerName=F_strDeviceName & "."& F_strDefaultDNS
Else
objComputer.FullQualifiedComputerName=F_strDeviceName
End If
'Machine belongs to Workgroup
'If F_strOriginalStatus = "workgroup" then
If ( UCase(F_strOriginalStatus) = UCase(CONST_WORKGROUP)) then
'Adding to Workgroup
If (UCase(F_strRadio) = UCase(CONST_WORKGROUP)) then
objComputer.workgroupName = F_strWorkGroup
'Adding to Domain
Elseif (UCase(F_strRadio) = UCase(CONST_DOMAIN) ) then
objcomputer.domainName = F_strDomain
End If
'Machine belongs to Domain
Else
'Adding to Workgroup
If (UCase(F_strRadio) = UCase(CONST_WORKGROUP)) then
objComputer.workgroupName = F_strWorkGroup
'Adding to Domain
Elseif (UCase(F_strRadio) = UCase(CONST_DOMAIN) ) then
objcomputer.domainName = F_strDomain
End If
End If
'In XPE, to join a domain, the username has to be domain\username
If CONST_OSNAME_XPE = GetServerOSName() Then
if (UCase(F_strRadio) = UCase(CONST_DOMAIN) ) then
if InStr(F_strUserName, "\") = 0 Then
F_strUserName = F_strDomain & "\" & F_strUserName
End If
End If
End If
'Logon information(Username & Password)
objComputer.LogonInfo F_strUserName,F_strPassword
'Checking for logoninfo method failure
If Err.number <> 0 Then
SA_SetErrMsg L_LOGONINFOFAILED_ERRORMESSAGE &_
"("& Hex(Err.Number) &")"
objComputer = nothing
Exit Function
End If
Set objComputer = nothing
SetSystemSettings = True
End Function
'---------------------------------------------------------------------
'Function name: ApplySettings
'Description: Applies the settings for the System
'Input Variables: objSystem
'Output Variables: None
'Return Values: Returns (True/False)
'Global Variables: In:L_(*)
' In:N_(*)
'---------------------------------------------------------------------
Function ApplySettings(objSystem)
on error resume next
Err.Clear
Dim errorcode
Dim strErrorMessage
ApplySettings = FALSE
SA_TraceOut "ID_PROP", "Beginning ApplySettings"
If ( Err.Number <> 0 ) Then
SA_TraceOut "ID_PROP", "Precondition assert failed. Err.Number != 0 " + CStr(Hex(Err.Number))
End If
'Apply System Settings using ComObject
objSystem.Apply(1)
errorCode = Err.Number
If errorCode = 0 Then
If ( G_bAppleTalkInstalled ) Then 'If AppleTalk service installed
'Function call to set the servername in the regisrty
If not IsSetServerNameInRegistry(CONST_APPLETALK_REGKEYPATH,"ServerName",F_strAppleTalkName) Then
ApplySettings = False
Exit function
End If
End If ' end of If ( G_bAppleTalkInstalled ) Then
If ( G_bNetWareInstalled ) Then 'If Netware service installed
'Function call to set the servername in the regisrty
If not IsSetServerNameInRegistry(CONST_NETWARE_REGKEYPATH,"ComputerName",F_strNetWareName) Then
ApplySettings = False
Exit function
End If
End If ' end of If ( G_bNetWareInstalled ) Then
ApplySettings = TRUE
Else
ApplySettings = FALSE
SA_TraceOut "ID_PROP", "objSystem.Apply(1) failed: " + CStr(Hex(errorCode))
Select Case errorCode
Case N_UNEXPECTED_COMPUTERNAMEERROR
strErrorMessage = L_COMPUTERNAME_INVALID_ERRORMESSAGE
Case N_DUPLICATECOMPUTERNAME_ERRNO1
strErrorMessage = L_COMPUTERNAME_INUSE_ERRORMESSAGE
Case N_DUPLICATECOMPUTERNAME_ERRNO2
strErrorMessage = L_COMPUTERNAME_INUSE_ERRORMESSAGE
Case N_INVALIDDOMAIN_ERRNO
strErrorMessage = L_INVALIDDOMAINNAME_ERRORMESSAGE
Case N_INVALIDCREDENTIALS_ERRNO
strErrorMessage = L_DOMAINUSERINVALIDCREDENTIALS_ERRORMESSAGE
Case N_DOMAININVALIDDOMAIN_ERRNO
strErrorMessage = L_DOMAINUSERINVALIDCREDENTIALS_ERRORMESSAGE
Case N_DOMAININVALIDDOMAINPERMISSIONDENIES_ERRNO
strErrorMessage = L_DOMAINUSERINVALIDCREDENTIALS_ERRORMESSAGE
Case N_DNSNAMEINVALID_ERRNO
strErrorMessage = L_INVALIDDNSNAME_ERRORMESSAGE
Case N_DOMAINNAMESYSTAX_ERRNO
strErrorMessage = L_DOMAINNAMESYNTAX_ERRORMESSAGE
Case Else
strErrorMessage = L_CHANGESYSTEMSETTINGSFAILED_ERRORMESSAGE
End Select
strErrorMessage = strErrorMessage & " ("& Hex(errorCode) &")"
SA_SetErrMsg strErrorMessage
End If
End Function
'------------------------------------------------------------------------
'Subroutine name: IsRestartReq
'Description: To check if restart required or not
'Input Variables: objSystem
'Ouput Variables: None
'Return Values: True/False
'Global Variables: L_ERRORINISREBOOT_ERRORMESSAGE, F_strRebootState
' : L_CHANGESYSTEMSETTINGSFAILED_ERRORMESSAGE
'------------------------------------------------------------------------
Function IsRestartReq(objSystem)
On Error Resume Next
Err.Clear
Dim nIsRestartReq
Dim strReturnURL
Dim strMessage
strReturnURL = "RebootSys.asp"
'Is Restart Required
nIsRestartReq = objSystem.IsRebootRequired(strMessage)
If Err.Number <> 0 Then
SA_SetErrMsg L_ERRORINISREBOOT_ERRORMESSAGE &_
"("& Hex(Err.Number) &")"
objSystem = nothing
IsRestartReq = False
Exit Function
End If
'
' If restart not required for this change
If (NOT nIsRestartReq) Then
' Make sure the last attempt did not require a reboot
If (UCase(F_strRebootState) = UCase(CONST_YES)) Then
SA_TraceOut "ID_PROP", "Cached reboot state being set"
nIsRestartReq = 1
End If
End If
If nIsRestartReq Then 'If restart required then assign all the
SA_TraceOut "ID_PROP", "Reboot is required"
F_strRebootState = CONST_YES
SA_TraceOut "ID_PROP", "Calling ApplySettings"
If ApplySettings(objSystem) = TRUE Then 'Calling the applysettings method
SA_TraceOut "ID_PROP", "Redirecting to RebootSys.asp"
'Redirecting to reboot page
Call SA_MungeURL(strReturnURL,"Tab1",getTab1())
Call SA_MungeURL(strReturnURL,"Tab2",getTab2())
Call SA_MungeURL(strReturnURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
Response.Redirect strReturnURL
Else
SA_TraceOut "ID_PROP", "ApplySettings failed "
objSystem = nothing
Exit Function
End If
Else
SA_TraceOut "ID_PROP", "Reboot is NOT required"
objSystem.Apply(1) 'Applying the settings to object
If Err.Number <> 0 Then
SA_SetErrMsg L_CHANGESYSTEMSETTINGSFAILED_ERRORMESSAGE &_
"("& Hex(Err.Number) &")"
IsRestartReq = False
objSystem = nothing
Exit Function
End If
End If
IsRestartReq = True
End Function
'-----------------------------------------------------------------------
'Subroutine name: GetAppleTalkNetWareSettings
'Description: To get AppleTalk and NetWare Settings from the
' Registry
'Input Variables: G_bAppleTalkInstalled, G_bNetWareInstalled
' F_strDeviceName
'Ouput Variables: F_strNetWareName, F_strAppleTalkName
'Return Values: None
'Global Variables: G_bAppleTalkInstalled, G_bNetWareInstalled,
' F_strAppleTalkName, F_strNetWareName, F_strDeviceName
'------------------------------------------------------------------------
Function GetAppleTalkNetWareSettings
On Error Resume Next
Err.Clear
Dim strPath
Dim strServerName
Dim objAppleNetwareRegistry
GetAppleTalkNetWareSettings = False
If G_bAppleTalkInstalled = True or G_bNetWareInstalled = True Then
set objAppleNetwareRegistry = RegConnection()
If Err.number <> 0 then
SA_SetErrMsg L_REGISTRYCONNECTIONFAIL_ERRORMESSAGE & "(" & Err.Number & ")"
Exit Function
End If
If G_bAppleTalkInstalled = True Then
strPath = "SYSTEM\CurrentControlSet\Services\MacFile\Parameters"
strServerName = getRegkeyvalue(objAppleNetwareRegistry,strPath,"ServerName",CONST_STRING)
'Checking for the AppleTalk servername
If strServerName = "" Then
F_strAppleTalkName = F_strDeviceName 'if null assign the machine name itself
Else
F_strAppleTalkName = strServerName 'Get it from the registry
End IF
End If
If G_bNetWareInstalled = True Then
strPath = "SYSTEM\CurrentControlSet\Services\FPNW\Parameters"
strServerName = getRegkeyvalue(objAppleNetwareRegistry,strPath,"ComputerName",CONST_STRING)
'Checking for the Netware servername
If strServerName = "" Then
F_strNetWareName = F_strDeviceName & "_NW" 'if null assign the machine name itself
Else
F_strNetWareName = strServerName 'Get it from the registry
End IF
End If
End If
GetAppleTalkNetWareSettings = True
End Function
'-----------------------------------------------------------------------
'Function: IsSetServerNameInRegistry
'Description: To set Server names like AppleTalk and NetWare in Registry
'Input Variables: strRegkeyPath -Path
' strKeyName -KeyName
' strValue -Keyvalue
'Ouput Variables:
'Return Values: TRUE/FALSE
'Global Variables: In:L_(*)
'------------------------------------------------------------------------
Function IsSetServerNameInRegistry(strRegkeyPath , strKeyName , strValue )
On Error Resume Next
Err.Clear
Dim objRegistry
Dim nReturnValue
IsSetServerNameInRegistry=TRUE
Set objRegistry = RegConnection()
If Err.number <> 0 then
SA_SetErrMsg L_REGISTRYCONNECTIONFAIL_ERRORMESSAGE
Exit Function
End If
nReturnValue= updateRegkeyvalue(objRegistry , strRegkeyPath , strKeyName , strValue , CONST_STRING )
If nReturnValue = FAlSE Then
IsSetServerNameInRegistry=FALSE
End If
End function
%>