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.
405 lines
13 KiB
405 lines
13 KiB
<%@ Language=VBScript %>
|
|
|
|
<% Option Explicit %>
|
|
|
|
<%
|
|
'Response.Buffer = True
|
|
'-------------------------------------------------------------------------
|
|
' site_delete.asp: site delete page - deletes the selected site
|
|
'
|
|
' Copyright (c) Microsoft Corporation. All rights reserved.
|
|
'
|
|
' Date Description
|
|
'03-Oct-00 Creation date
|
|
'25-Jan-01 Modified for new framework
|
|
'-------------------------------------------------------------------------
|
|
%>
|
|
|
|
<!-- #include virtual="/admin/inc_framework.asp"--->
|
|
<!-- #include file="resources.asp" -->
|
|
<!-- #include file="inc_wsa.asp" -->
|
|
|
|
<%
|
|
'-----------------------------------------------------------------------------------
|
|
' Global Variables
|
|
'-----------------------------------------------------------------------------------
|
|
Dim G_strSiteID 'To save site name
|
|
Dim G_strDirRoot 'To hold Dir root
|
|
Dim G_strSysName 'To hold system name globally
|
|
Dim G_strDir 'To hold Dir globally
|
|
Dim F_strSiteID 'To hold site identifier
|
|
Dim rc 'To hold return code
|
|
Dim page 'To hold page object
|
|
|
|
'Create property page
|
|
rc=SA_CreatePage(L_TASKTITLE,"",PT_PROPERTY,page)
|
|
|
|
'Serve the page
|
|
If(rc=0) then
|
|
SA_ShowPage(Page)
|
|
End if
|
|
|
|
'--------------------------------------------------------------------------
|
|
' Function name: OnInitPage
|
|
' Description: Called to signal first time processing for this page.
|
|
' Input Variables: PageIn and EventArg
|
|
' Output Variables: None
|
|
' Return Values: TRUE to indicate initialization was successful. FALSE to indicate
|
|
' errors. Returning FALSE will cause the page to be abandoned.
|
|
' Global Variables: None
|
|
' Called to signal first time processing for this page.
|
|
'--------------------------------------------------------------------------
|
|
Public Function OnInitPage(ByRef PageIn,ByRef EventArg)
|
|
SetVariablesFromSystem()
|
|
OnInitPage = True
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Function: OnServePropertyPage()
|
|
' Description: Called when the page needs to be served.
|
|
' Input Variables: PageIn, EventArg
|
|
' Output Variables: None
|
|
' Return Values: TRUE to indicate no problems occured. FALSE to indicate errors.
|
|
' Returning FALSE will cause the page to be abandoned.
|
|
' Global Variables: None
|
|
'Called when the page needs to be served. Use this method to serve content.
|
|
'---------------------------------------------------------------------
|
|
Public Function OnServePropertyPage(ByRef PageIn,Byref EventArg)
|
|
Call ServeCommonJavaScript()
|
|
Call ServePage()
|
|
OnServePropertyPage = True
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Function: OnPostBackPage()
|
|
'Description: Called to signal that the page has been posted-back.
|
|
'Input Variables: PageIn,EventArg
|
|
'Output Variables: None
|
|
'Returns: True/False
|
|
'Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Public Function OnPostBackPage(ByRef PageIn ,ByRef EventArg)
|
|
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: None
|
|
'Returns: True/False
|
|
'Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Public Function OnSubmitPage(ByRef PageIn ,ByRef EventArg)
|
|
OnSubmitPage = ServeVariablesFromForm()
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Function: OnClosePage()
|
|
'Description: Called when the page is about 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
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Function: ServeCommonJavaScript
|
|
'Description: Serves in initialiging the values,setting the form
|
|
' data and validating the form values
|
|
'Input Variables: None
|
|
'Output Variables: None
|
|
'Returns: True/False
|
|
'Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Function ServeCommonJavaScript()
|
|
%>
|
|
<script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js"></script>
|
|
<script language="JavaScript">
|
|
|
|
//Init Function
|
|
function Init()
|
|
{
|
|
//do initialization
|
|
return true;
|
|
}
|
|
|
|
// validates user entry
|
|
function ValidatePage()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//Sets data into the form variable
|
|
function SetData()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
</script>
|
|
|
|
<% End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Function: ServePage()
|
|
'Description: For displaying outputs HTML to the user
|
|
'Input Variables: None
|
|
'Output Variables: None
|
|
'Returns: None
|
|
'Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Function ServePage
|
|
%>
|
|
<TABLE WIDTH=618 VALIGN=middle ALIGN=left BORDER=0 CELLSPACING=0 CELLPADDING=2 class="TasksBody">
|
|
<tr>
|
|
<td class=TasksBody>
|
|
<%=Server.HTMLEncode(GetLocString("sitearea.dll","40420012",Array(F_strSiteID)))%>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class=TasksBody colspan=2>
|
|
 
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class=TasksBody>
|
|
<%=Server.HTMLEncode(L_NOTE)%>
|
|
</td>
|
|
</tr>
|
|
</TABLE>
|
|
<input type=hidden name="hdnSiteName" value="<%=Server.HTMLEncode(F_strSiteID)%>">
|
|
<input type=hidden name="hdnSiteId" value="<%=Server.HTMLEncode(G_strSiteID)%>">
|
|
<%
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Function name: ServeVariablesFromForm()
|
|
'Description: Serves in getting the data from Client
|
|
'Input Variables: None
|
|
'Output Variables: None
|
|
'Returns: True/False
|
|
'Global Variables: None
|
|
'-------------------------------------------------------------------------
|
|
Function ServeVariablesFromForm()
|
|
'delete the site
|
|
F_strSiteID = Request.Form("hdnSiteName")
|
|
G_strSiteID = Request.Form("hdnSiteId")
|
|
|
|
If blnDeleteSite()then
|
|
ServeVariablesFromForm = true
|
|
else
|
|
ServeVariablesFromForm = false
|
|
end if
|
|
End Function
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Procedure name: SetVariablesFromSystem
|
|
'Description: Serves in Getting the data from System
|
|
'Input Variables: None
|
|
'Output Variables: None
|
|
'Returns: None
|
|
'Global Variables:
|
|
' Out:G_strSiteID - site identifier
|
|
' Out:G_strSiteID -site identifier
|
|
'-------------------------------------------------------------------------
|
|
Sub SetVariablesFromSystem()
|
|
'Initial values of the form data
|
|
G_strSiteID = Request.QueryString("PKey")
|
|
F_strSiteID = GetWebSiteName(G_strSiteID)
|
|
End Sub
|
|
|
|
'-------------------------------------------------------------------------
|
|
'Procedure name: InitObjects
|
|
'Description: Initialization of global variables is done
|
|
'Input Variables: None
|
|
'Output Variables: None
|
|
'Returns: None
|
|
'Global Variables: G_strDirRoot, G_strSysName
|
|
'--------------------------------------------------------------------------
|
|
|
|
Sub InitObjects()
|
|
Err.Clear
|
|
on error resume next
|
|
|
|
Call GetDomainRole( G_strDirRoot, G_strSysName )
|
|
End Sub
|
|
|
|
'----------------------------------------------------------------------------
|
|
'Function name :blnDeleteSite
|
|
'Description :Deletes the site from the IIS
|
|
'Input Variables :None
|
|
'Output Variables :None
|
|
'Returns :Boolean (True if the site is deleted else returns False)
|
|
'Global Variables :G_strSiteID
|
|
'----------------------------------------------------------------------------
|
|
Function blnDeleteSite()
|
|
On Error Resume Next
|
|
Err.Clear
|
|
|
|
Dim objSite ' To hold sites object
|
|
Dim objService ' To hold WMI connection object
|
|
Dim blnUsers ' To hold users object
|
|
Dim strObjPath ' To hold object path as string
|
|
Dim strDomain
|
|
Dim strUser
|
|
Dim arrID
|
|
Dim strAdminName
|
|
|
|
|
|
Set objService = getWMIConnection(CONST_WMI_IIS_NAMESPACE)
|
|
|
|
Call GetWebAdministrtorRole(objService, G_strSiteID, strAdminName)
|
|
arrID = split(strAdminName,"\")
|
|
strDomain = arrID(0)
|
|
strUser = arrID(1)
|
|
|
|
'
|
|
' Delete FrontPage extensions
|
|
Call UpdateFrontPage("false", G_strSiteID, strUser)
|
|
|
|
'get the web site dir
|
|
strObjPath = GetIISWMIProviderClassName("IIs_WebVirtualDirSetting") & ".Name=" & chr(34) & G_strSiteID & "/Root" & chr(34)
|
|
Set objSite = objService.Get(strObjPath)
|
|
G_strDir = objSite.Path
|
|
|
|
'1) Delete web site
|
|
strObjPath = GetIISWMIProviderClassName("IIs_WebServer") & ".Name=" & chr(34) & G_strSiteID & chr(34)
|
|
Set objSite = objService.Get(strObjPath)
|
|
|
|
if Err.number = 424 or Err.number <> 0 then
|
|
' if object not found
|
|
SetErrMsg L_OBJECTNOTFOUND_ERRORMESSAGE
|
|
exit function
|
|
elseif Err.number = 0 then
|
|
objSite.delete_
|
|
end if
|
|
|
|
'2) delete users
|
|
Call blnDeleteUsers(strDomain,strUser)
|
|
|
|
'3) delete virtual FTP site
|
|
If IsUserVirFTPInstalled(objService, strUser) Then
|
|
Call DeleteVirFTPSite(objService, strUser)
|
|
End If
|
|
|
|
'release objects
|
|
set objService = nothing
|
|
set objSite = nothing
|
|
|
|
blnDeleteSite = TRUE
|
|
|
|
End function
|
|
|
|
'----------------------------------------------------------------------------
|
|
'Function name :blnDeleteUsers
|
|
'Description :Deletes the anon and admin user from the system associated
|
|
' with the site
|
|
'Input Variables :None
|
|
'Output Variables :None
|
|
'Returns :Boolean (True if users are deleted else returns False)
|
|
'Global Variables :G_strDir, F_strSiteID, G_strDirRoot
|
|
'----------------------------------------------------------------------------
|
|
Function blnDeleteUsers(strDomain, strUser)
|
|
Err.Clear
|
|
on error resume next
|
|
|
|
Dim strAnonName ' To hold Anon name
|
|
Dim nretval ' To hold Return value
|
|
Dim objComputer ' To hold computer object
|
|
Dim strSiteID ' To site id as string
|
|
Dim oRoot ' To hold root object
|
|
Dim oOUWebSites ' To hold websites OU object
|
|
Dim oOUSiteID ' To hold site OU object
|
|
Dim ouObject ' To hold OU object
|
|
Dim QuotaState
|
|
|
|
'1)Initialize the objects
|
|
InitObjects()
|
|
|
|
'2) Delete the folder
|
|
if not blnDeleteFolder(G_strDir) then
|
|
SetErrMsg L_UNABLETO_DELETEFOLDER_ERRORMESSAGE
|
|
end if
|
|
|
|
'3) delete the user
|
|
If (UCase(strDomain) = UCase(G_strSysName)) Then
|
|
' Delete users in SAM database
|
|
Set objComputer = GetObject("WinNT://" & strDomain)
|
|
If Err.number <> 0 Then
|
|
blnDeleteUsers = FALSE
|
|
exit Function
|
|
End if
|
|
|
|
'get the site-identifier(NUMBER) from the format W3SVC/NUMBER
|
|
strSiteID = F_strSiteID
|
|
strAnonName = strSiteID & "_Anon"
|
|
|
|
'deletes the anonuser from the System
|
|
nretval = objComputer.Delete("user" , strAnonName)
|
|
If Err.Number <> 0 Then
|
|
Err.Clear
|
|
'this case may be that the user is existed user
|
|
blnDeleteUsers = TRUE
|
|
exit Function
|
|
End If
|
|
|
|
If InStr(strUser,"_Admin") <> 0 Then
|
|
'deletes the adminuser from the System
|
|
nretval = objComputer.Delete("user" , strUser)
|
|
If Err.Number <> 0 Then
|
|
Err.Clear
|
|
End If
|
|
End If
|
|
|
|
'Release the object
|
|
set objComputer = nothing
|
|
End If
|
|
|
|
blnDeleteUsers = TRUE
|
|
|
|
SA_TraceOut "site_delete", "Delete users, workgroup succeed"
|
|
|
|
end function
|
|
|
|
'----------------------------------------------------------------------------
|
|
'Function name :blnDeleteFolder
|
|
'Description :Delete Directory after deleting users
|
|
'Input Variables :Directory path
|
|
'Output Variables :None
|
|
'Returns :Boolean
|
|
'Global Variables :None
|
|
'----------------------------------------------------------------------------
|
|
Function blnDeleteFolder(strDir)
|
|
|
|
Dim objFso ' To hold File system object
|
|
|
|
blnDeleteFolder = false
|
|
|
|
Set objFso = server.CreateObject("Scripting.FileSystemObject")
|
|
if Err.number <> 0 then
|
|
SA_TraceOut "site_delete", "Getting the file system object failed."
|
|
SetErrMsg L_UNABLETO_DELETEFOLDER_ERRORMESSAGE
|
|
exit function
|
|
end if
|
|
|
|
objFso.DeleteFolder(strDir)
|
|
if Err.number <> 0 then
|
|
SetErrMsg L_UNABLETO_DELETEFOLDER_ERRORMESSAGE
|
|
exit function
|
|
end if
|
|
|
|
SA_TraceOut "site_delete", "Deleting folders succeeded."
|
|
|
|
blnDeleteFolder = true
|
|
|
|
'Release the Object
|
|
set objFso = nothing
|
|
|
|
end function
|
|
|
|
%>
|