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.
 
 
 
 
 
 

460 lines
15 KiB

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'---------------------------------------------------------------------
' share_delete.asp : Deletes the selected share
'
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Date Description
' 23-01-2001 Created date
' 19-03-2001 Modified date
'---------------------------------------------------------------------
%>
<!-- #include virtual="/admin/inc_framework.asp" -->
<!-- #include file="loc_shares.asp" -->
<!-- #include file="inc_shares.asp" -->
<%
'---------------------------------------------------------------------
' Global Variables
'---------------------------------------------------------------------
Dim rc ' return code for SA_CreatePage
Dim page ' the page object
Dim G_ShareType ' hold share type
Dim G_strShareNames ' concatenated string of shares to be deleted
Dim G_strFolderPath ' concatenated string of sharePaths
Dim SOURCE_FILE ' the source file name used while Tracing
' get the source file name to use while Tracing
SOURCE_FILE = SA_GetScriptFileName()
' Create a Property Page
rc = SA_CreatePage(L_SHARETASKTITLE_DELETE_TEXT, "", PT_PROPERTY, page )
If rc = SA_NO_ERROR Then
' show the page
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: None
' Functions Called: GetOTSTableValues()
'-------------------------------------------------------------------------
Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
Call SA_TraceOut(SOURCE_FILE, "OnInitPage")
Call GetOTSTableValues()
OnInitPage = TRUE
End Function
'-------------------------------------------------------------------------
' Function: OnServePropertyPage()
' Description: Called when the page needs to be served.
' Input Variables: PageIn,EventArg
' Output Variables: PageIn,EventArg
' Returns: True/False
' Global Variables: None
' Functions Called: ServeCommonJavaScript()
' ServePageUI()
'-------------------------------------------------------------------------
Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
Call SA_TraceOut(SOURCE_FILE, "OnServePropertyPage")
' Emit Functions required by Web Framework
Call ServeCommonJavaScript()
'Emit UI for this page
Call ServePageUI()
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
' Returns: True/False
' Global Variables: G_strShareNames - concatenated string of share names
' to be deleted
' G_ShareType - the type of share to be deleted
'-------------------------------------------------------------------------
Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg)
Call SA_TraceOut(SOURCE_FILE, "OnPostBackPage")
'Get share name from the hidden values of form
G_strShareNames = Request.Form("hdnShareNames")
'Get share type from the hidden values of form
G_ShareType = Request.Form("hdnShareType")
G_strFolderPath=UnEscapeChars(Request.Form("hdnsharePath"))
OnPostBackPage = TRUE
End Function
'-------------------------------------------------------------------------
' Function: OnSubmitPage()
' Description: Called when the page has been submitted for processing.
' Used to process the submit request.
' Input Variables: PageIn,EventArg
' Output Variables: PageIn,EventArg
' Returns: True/False
' Global Variables: G_ShareType
' G_strFolderPath
' Functions called: DeleteShare()
'-------------------------------------------------------------------------
Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
Call SA_TraceOut(SOURCE_FILE, "OnSubmitPage")
'Delete the share on submit
OnSubmitPage= DeleteShare()
End Function
'-------------------------------------------------------------------------
' Function: OnClosePage()
' Description: Called when the page is about to be closed.
' Input Variables: PageIn,EventArg
' Output Variables: PageIn,EventArg
' Returns: True/False
' Global Variables: None
'-------------------------------------------------------------------------
Public Function OnClosePage(ByRef PageIn, ByRef EventArg)
Call SA_TraceOut(SOURCE_FILE, "OnClosePage")
OnClosePage = TRUE
End Function
'-------------------------------------------------------------------------
'Function name: DeleteShare
'Description: Serves in deleting the selected share
'Input Variables: None
'Output Variables: None
'Returns: True if share is deleted else False
'Global Variables: F_*,L_*
' CONST_WMI_IIS_NAMESPACE
' CONST_WMI_WIN32_NAMESPACE
'-------------------------------------------------------------------------
Function DeleteShare()
Err.Clear
On Error Resume Next
Dim objDefaultConnection 'hold WMI WIN32Namespace Connection object
Dim objIISConnection 'hold WMI IISNamespace Connection object
Dim objRegistryConnection 'hold registry connection
Dim strSuccessfulDelete 'Shares successfully delete
Dim strUnSuccessfulDelete 'Shares unsuccessfully deleted
Dim arrShareNames
Dim arrShareTypes
Dim arrTotalErrors
Dim strErrorMessage
Dim nCount
Dim strShareTypesFailed
Dim strShareTypesSuccessful
Dim arrPathMessage
Dim arrShareFailOrSuccess
Dim strSuccessMessage
Dim nUpperBound
Dim arrShareFailed
Dim arrShareSuccess
Dim arrVarReplacementStrings(1)
Const CONST_HTTP = "H"
Const CONST_FTP = "F"
Const CONST_CIFS = "W"
Const CONST_NFS = "U"
Const CONST_APPLETALK = "A"
Const CONST_SUCCESS = "S"
Const CONST_FAIL = "F"
Const CONST_SEPARATE = "*"
DeleteShare = FALSE 'Initialize it to false
Call SA_TraceOut(SOURCE_FILE, "DeleteShare()")
'Getting connected to CIMV2 namespace
Set objDefaultConnection =getWMIConnection(CONST_WMI_WIN32_NAMESPACE)
'Getting connected to Registry
Set objRegistryConnection =RegConnection()
'Getting connected to MicrosoftIISv1 namespace
Set objIISConnection =getWMIConnection(CONST_WMI_IIS_NAMESPACE)
arrShareNames = split(G_strShareNames,chr(1))
arrShareTypes = split(G_ShareType,chr(1))
strErrorMessage = ""
arrPathMessage=split(G_strFolderPath,chr(1))
nUpperBound = ubound(arrShareNames) - 1
Redim arrTotalErrors(nUpperBound)
For nCount=0 to nUpperBound
'
' Delete a share even its folder is not exist anymore
If false Then 'isPathExisting(arrPathMessage(nCount)) then
'arrTotalErrors(nCount)=UnEscapeChars(arrShareNames(nCount))& " "
Else
'If share type is "H" i.e HTTP share
strShareTypesFailed = ""
If Instr(arrShareTypes(nCount),CONST_HTTP)<> 0 then
If not deleteShareHttp( objIISConnection ,UnEscapeChars(arrShareNames(nCount)) )then
Call SA_TraceOut(SOURCE_FILE, "Unable to delete Http Share")
strShareTypesFailed = strShareTypesFailed & CONST_HTTP & " "
Else
strShareTypesSuccessful = strShareTypesSuccessful & CONST_HTTP & " "
End If
End if
'If share type is "F" i.e FTP share
If Instr(arrShareTypes(nCount),CONST_FTP)<> 0 then
If not deleteShareftp( objIISConnection ,UnEscapeChars(arrShareNames(nCount)) ) then
call SA_TraceOut(SOURCE_FILE, "Unable to delete FTP Share")
strShareTypesFailed = strShareTypesFailed & CONST_FTP & " "
Else
strShareTypesSuccessful = strShareTypesSuccessful & CONST_FTP & " "
End If
End if
'If share type is "W" i.e Windows share
If Instr(arrShareTypes(nCount),CONST_CIFS)<> 0 then
If not deleteShareCIFS (objDefaultConnection ,UnEscapeChars(arrShareNames(nCount)) )then
Call SA_TraceOut(SOURCE_FILE, "Unable to delete Windows Share")
strShareTypesFailed = strShareTypesFailed & CONST_CIFS & " "
Else
strShareTypesSuccessful = strShareTypesSuccessful & CONST_CIFS & " "
End If
End if
'If share type is "U" i.e Unix share
If Instr(arrShareTypes(nCount),CONST_NFS)<> 0 then
If not deleteShareNFS (UnEscapeChars(arrShareNames(nCount)) )then
Call SA_TraceOut(SOURCE_FILE, "Unable to delete Unix Share")
strShareTypesFailed = strShareTypesFailed & CONST_NFS & " "
Else
strShareTypesSuccessful = strShareTypesSuccessful & CONST_NFS & " "
End If
End if
'If share type is "A" i.e Appletalk share
If Instr(arrShareTypes(nCount),CONST_APPLETALK)<> 0 then
If not deleteShareAppleTalk(UnEscapeChars(arrShareNames(nCount)))then
Call SA_TraceOut(SOURCE_FILE, "Unable to delete Appletalk Share")
strShareTypesFailed = strShareTypesFailed & CONST_APPLETALK & " "
Else
strShareTypesSuccessful = strShareTypesSuccessful & CONST_APPLETALK & " "
End If
End if
If strShareTypesFailed <> "" Then
arrTotalErrors(nCount) = CONST_FAIL & Chr(1) & arrShareNames(nCount)& "( "& strShareTypesFailed &") "
End If
If strShareTypesSuccessful <> "" Then
arrTotalErrors(nCount) = arrTotalErrors(nCount) & CONST_SEPARATE & CONST_SUCCESS & Chr(1) & arrShareNames(nCount) & "( "& strShareTypesSuccessful &") "
End If
End If
Next
For nCount = 0 to ubound(arrTotalErrors)
arrShareFailOrSuccess = Split(arrTotalErrors(nCount),CONST_SEPARATE)
arrShareFailed = Split(arrShareFailOrSuccess(0),chr(1))
arrShareSuccess = Split(arrShareFailOrSuccess(1),chr(1))
If arrShareFailed(0) = CONST_FAIL Then
strErrorMessage = strErrorMessage & arrShareFailed(1) & "<BR>"
End If
If arrShareSuccess(0) = CONST_SUCCESS Then
strSuccessMessage = strSuccessMessage & arrShareSuccess(1) & "<BR>"
End If
Next
If trim(strSuccessMessage) <> "" Then
arrVarReplacementStrings(0) = strSuccessMessage
strSuccessMessage = SA_GetLocString("foldermsg.dll","403A00CF",arrVarReplacementStrings)
End If
If trim(strErrorMessage) <> "" Then
arrVarReplacementStrings(0) = strErrorMessage
strErrorMessage = SA_GetLocString("foldermsg.dll","403A00D0",arrVarReplacementStrings)
End If
If trim(strErrorMessage) <> "" And trim(strSuccessMessage) <> "" Then
Set objDefaultConnection = Nothing
Set objRegistryConnection = Nothing
Set objIISConnection = Nothing
SA_ServeFailurePage strSuccessMessage & strErrorMessage
Else
If trim(strErrorMessage) <> "" And trim(strSuccessMessage) = "" Then
Set objDefaultConnection = Nothing
Set objRegistryConnection = Nothing
Set objIISConnection = Nothing
SA_ServeFailurePage strErrorMessage
End If
End If
Set objDefaultConnection = Nothing
Set objRegistryConnection = Nothing
Set objIISConnection = Nothing
DeleteShare = TRUE
End function
'-------------------------------------------------------------------------
'Subroutine name: GetOTSTableValues
'Description: Get the names of the folders selected
'Input Variables: None
'Output Variables: None
'Returns: None
'Global Variables:
'-------------------------------------------------------------------------
Sub GetOTSTableValues()
Dim arrShares 'hold array of shares
Dim nCount
Dim itemCount
Dim itemKey
itemCount = OTS_GetTableSelectionCount("")
For nCount = 1 to itemCount
If ( OTS_GetTableSelection("", nCount, itemKey) ) Then
arrShares = split(itemKey,chr(1))
G_strShareNames = G_strShareNames & UnEscapeChars(arrShares(0)) & chr(1)
G_strFolderPath=UnEscapeChars(G_strFolderPath) & arrShares(1)& chr(1)
G_ShareType=G_ShareType & arrShares(2) & chr(1) 'get the share type
End If
Next
End Sub
'-------------------------------------------------------------------------
'Function: ServeCommonJavaScript
'Description: Serves in initializing the values,setting the form
' data and validating the form values
'Input Variables: None
'Output Variables: None
'Returns: None
'Global Variables: None
'-------------------------------------------------------------------------
Function ServeCommonJavaScript()
%>
<script language="JavaScript">
// Init Function
function Init()
{
document.frmTask.action = location.href;
}
// ValidatePage Function
// Returns: True if the page is OK, false if error(s) exist.
function ValidatePage()
{
return true;
}
// SetData Function
// This function must be included or a javascript runtime error will occur.
function SetData()
{
return true;
}
</script>
<%
End Function
'-------------------------------------------------------------------------
'Function: ServePageUI
'Description: Serves User Interface for the page
'Input Variables: None
'Output Variables: None
'Returns: None
'Global Variables: F_*,G_*,L_*
'-------------------------------------------------------------------------
Function ServePageUI()
Call SA_TraceOut(SOURCE_FILE, "ServePageUI")
Dim arrShareNames
Dim nCount
Dim arrVarReplacementStrings(1)
Const CONST_DECIMAL="."
%>
<table border="0" cellspacing="0" cellpadding="0" >
<%
G_strShareNames = Replace(G_strShareNames,"\","")
arrShareNames = split(G_strShareNames,chr(1))
If ubound(arrShareNames) > 1 Then
%>
<tr>
<td class="TasksBody">
<%=L_DELETESHARECONFIRM_TEXT%><br><br>
<%
For nCount=0 to ubound(arrShareNames)
%>
<b> <%=UnEscapeChars(arrShareNames(nCount))%></b><br>
<%
Next
%>
<%=L_THESEFOLDERS_NOLONGER_TEXT%>
</td>
</tr>
<tr>
<td class="TasksBody">
<%=L_AREYOUSUREDELETE_FOLDERS_TEXT%>
</td>
</tr>
<%
Else
arrVarReplacementStrings(0) = arrShareNames(0)
%>
<tr>
<td class="TasksBody">
<%=SA_GetLocString("foldermsg.dll","403A00CB",arrVarReplacementStrings)%>
</td>
</tr>
<tr>
<td class="TasksBody">
<%=L_AREYOUSUREDELETE_FOLDER_TEXT%>
</td>
</tr>
<%
End If
%>
</table>
<input type="hidden" name="hdnShareNames" value="<%=server.HTMLEncode(G_strShareNames) %>">
<input type="hidden" name="hdnShareType" value="<%=server.HTMLEncode(G_ShareType) %>">
<input type="hidden" name="hdnsharePath" value="<%=server.HTMLEncode(G_strFolderPath) %>">
<%
End Function
%>