home *** CD-ROM | disk | FTP | other *** search
- '---------------------------------------------------------------------------------------------------
- 'ASTDeleteVirtualFTPDir:This function creates a virtual FTP directory on the specified FTP Site
- '
- 'ASTDeleteVirtualFTPDir <--computer|-c COMPUTER>
- ' <--ftpsite|-f FTPSITE1,FTPSITE2,...>
- ' <--virtualdir|-v NAME1,NAME2,...>
- ' [--help|-?]
- '
- 'COMPUTER Computer on which users exists
- 'FTPSITE1,FTPSITE2 Virtual FTP Sites on which directories will be created
- 'NAME1,NAME2 Virtual Directories names to create
- '
- 'Example 1 ASTCreateVirtualFTPDir -c MyComputer -f "Default FTP Site","Another FTP Site"
- ' -v "Virtual Dir1","Virtual Dir2"
- '
- '---------------------------------------------------------------------------------------------------
-
-
- ' Force explicit declaration of all variables.
- Option Explicit
-
- On Error Resume Next
-
- Dim oArgs, ArgNum
-
- Dim ArgComputer, ArgFTPSites, ArgDirNames
-
- Set oArgs = WScript.Arguments
-
- ArgNum = 0
- While ArgNum < oArgs.Count
-
- If (ArgNum + 1) >= oArgs.Count Then
- Call DisplayUsage
- End If
-
- Select Case LCase(oArgs(ArgNum))
- Case "--computer","-c":
- ArgNum = ArgNum + 1
- ArgComputer = oArgs(ArgNum)
- Case "--ftpsites","-f":
- ArgNum = ArgNum + 1
- ArgFTPSites = Split(oArgs(ArgNum), ",", -1)
- Case "--virtualdir","-v":
- ArgNum = ArgNum + 1
- ArgDirNames = Split(oArgs(ArgNum), ",", -1)
- Case "--help","-?"
- Call DisplayUsage
- End Select
-
- ArgNum = ArgNum + 1
- Wend
-
- If (ArgComputer = "") Or (IsArray(ArgFTPSites) = False) Or (IsArray(ArgDirNames) = False) Then
- Call DisplayUsage
- Else
- Call ASTDeleteVirtualFTPDir(ArgComputer,ArgFTPSites,ArgDirNames)
- End If
-
- '---------------------------------------------------------------------------------
- Function Display(Msg)
- WScript.Echo Now & ". Error Code: " & Err & " --- " & Msg
- End Function
-
- Sub DisplayUsage()
- WScript.Echo "Usage: ASTDeleteVirtualFTPDir <--computer|-c COMPUTER>"
- WScript.Echo " <--ftpsite|-f FTPSITE1,FTPSITE2,...>"
- WScript.Echo " <--virtualdir|-v NAME1,NAME2,...>"
- WScript.Echo " [--help|-?]"
- WScript.Quit
- End Sub
- '---------------------------------------------------------------------------------
-
- Sub ASTDeleteVirtualFTPDir(ComputerName,FTPSites,DirNames)
- On Error Resume Next
- Display "STARTING ASTDeleteVirtualFTPDir --- Beginning to process FTP sites and virtual directories..."
-
- Dim Computer, FTPSite, FTPSiteID, vRoot, SiteNum, DirNum
-
- 'Create and object for the FTP service
- Set Computer = GetObject("IIS://" & ComputerName & "/MSFTPSVC")
- If (Err <> 0) Then
- Display "TERMINATING ASTDeleteVirtualFTPDir --- Error accessing Computer " & ComputerName & ", or W3SVC."
- Exit Sub
- End If
-
- SiteNum = 0
- If IsArray(FTPSites) Then
- While SiteNum <= UBound(FTPSites)
- 'Check if the FTP Site specified by the user exists
- FTPSiteID = -1
- For Each FTPSite in Computer
- If FTPSite.Class = "IIsFtpServer" Then
- If FTPSite.ServerComment = FTPSites(SiteNum) Then
- FTPSiteID = FTPSite.Name
- Exit For
- End If
- End If
- Next
-
- If (FTPSiteID = -1) Then
- Display "ERROR ASTDeleteVirtualFTPDir --- Error accessing FTP site " & FTPSites(SiteNum) & ". Site may not exist."
- Else
- 'Get the Site's virtual root
- Set vRoot = GetObject("IIS://" & ComputerName & "/MSFTPSVC/" & FTPSiteID & "/root")
- If (Err <> 0) Then
- Display "ERROR ASTCreateVirtualFTPDir --- Error accessing root on FTP site " & FTPSites(SiteNum) & "."
- Else
- DirNum = 0
- If (IsArray(DirNames) = True) Then
- While DirNum <= UBound(DirNames)
- 'Delete the specified virtual directory
- Call vRoot.Delete("IIsFtpVirtualDir",DirNames(DirNum))
- If (Err <> 0) Then
- Display "ERROR ASTDeleteVirtualFTPDir --- Error deleting virtual directory " & DirNames(DirNum) & "on root of FTP site " & FTPSites(SiteNum) & ". Directory may not exist."
- Else
- Display "RUNNING ASTDeleteVirtualFTPDir --- Deleted virtual FTP directory " & DirNames(DirNum) & " on root of FTP site " & FTPSites(SiteNum) & "."
- End If
-
- Err = 0
- DirNum = DirNum + 1
- Wend
- End If
- End If
- End If
-
- Err = 0
- SiteNum = SiteNum + 1
- Wend
- Else
- Display "ERROR ASTDeleteVirtualFTPDir --- No FTP Sites to process."
- End If
-
- Display "COMPLETED ASTDeleteVirtualFTPDir --- FTP virtual directories processing completed."
- End Sub