home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 9 / IOPROG_9.ISO / contrib / iis4 / iis4_07.cab / delftpdr.vbs < prev    next >
Encoding:
Text File  |  1997-08-28  |  4.5 KB  |  135 lines

  1. '---------------------------------------------------------------------------------------------------
  2. 'ASTDeleteVirtualFTPDir:This function creates a virtual FTP directory on the specified FTP Site
  3. '
  4. 'ASTDeleteVirtualFTPDir <--computer|-c COMPUTER>
  5. '                       <--ftpsite|-f FTPSITE1,FTPSITE2,...>
  6. '                       <--virtualdir|-v NAME1,NAME2,...>
  7. '                       [--help|-?]
  8. '
  9. 'COMPUTER                Computer on which users exists
  10. 'FTPSITE1,FTPSITE2        Virtual FTP Sites on which directories will be created
  11. 'NAME1,NAME2            Virtual Directories names to create
  12. '
  13. 'Example 1                ASTCreateVirtualFTPDir -c MyComputer -f "Default FTP Site","Another FTP Site"
  14. '                        -v "Virtual Dir1","Virtual Dir2"
  15. '
  16. '---------------------------------------------------------------------------------------------------
  17.  
  18.  
  19. ' Force explicit declaration of all variables.
  20. Option Explicit
  21.  
  22. On Error Resume Next
  23.  
  24. Dim oArgs, ArgNum
  25.  
  26. Dim ArgComputer, ArgFTPSites, ArgDirNames
  27.  
  28. Set oArgs = WScript.Arguments
  29.  
  30. ArgNum = 0
  31. While ArgNum < oArgs.Count
  32.  
  33.     If (ArgNum + 1) >= oArgs.Count Then
  34.         Call DisplayUsage
  35.     End If    
  36.  
  37.     Select Case LCase(oArgs(ArgNum))
  38.         Case "--computer","-c":
  39.             ArgNum = ArgNum + 1
  40.             ArgComputer = oArgs(ArgNum)
  41.         Case "--ftpsites","-f":
  42.             ArgNum = ArgNum + 1
  43.             ArgFTPSites = Split(oArgs(ArgNum), ",", -1)
  44.         Case "--virtualdir","-v":
  45.             ArgNum = ArgNum + 1
  46.             ArgDirNames = Split(oArgs(ArgNum), ",", -1)
  47.         Case "--help","-?"
  48.             Call DisplayUsage
  49.     End Select    
  50.  
  51.     ArgNum = ArgNum + 1
  52. Wend
  53.  
  54. If (ArgComputer = "") Or (IsArray(ArgFTPSites) = False) Or (IsArray(ArgDirNames) = False) Then
  55.     Call DisplayUsage
  56. Else
  57.     Call ASTDeleteVirtualFTPDir(ArgComputer,ArgFTPSites,ArgDirNames)
  58. End If
  59.  
  60. '---------------------------------------------------------------------------------
  61. Function Display(Msg)
  62.     WScript.Echo Now & ". Error Code: " & Err & " --- " & Msg
  63. End Function
  64.  
  65. Sub DisplayUsage()
  66.     WScript.Echo "Usage: ASTDeleteVirtualFTPDir <--computer|-c COMPUTER>"
  67.     WScript.Echo "                              <--ftpsite|-f FTPSITE1,FTPSITE2,...>"
  68.     WScript.Echo "                              <--virtualdir|-v NAME1,NAME2,...>"
  69.     WScript.Echo "                              [--help|-?]"    
  70.     WScript.Quit
  71. End Sub
  72. '---------------------------------------------------------------------------------
  73.  
  74. Sub ASTDeleteVirtualFTPDir(ComputerName,FTPSites,DirNames)
  75.     On Error Resume Next
  76.     Display "STARTING  ASTDeleteVirtualFTPDir --- Beginning to process FTP sites and virtual directories..."
  77.  
  78.     Dim Computer, FTPSite, FTPSiteID, vRoot, SiteNum, DirNum
  79.     
  80.     'Create and object for the FTP service
  81.     Set Computer = GetObject("IIS://" & ComputerName & "/MSFTPSVC")
  82.     If (Err <> 0) Then
  83.         Display "TERMINATING ASTDeleteVirtualFTPDir --- Error accessing Computer " & ComputerName & ", or W3SVC."
  84.         Exit Sub
  85.     End If
  86.  
  87.     SiteNum = 0
  88.     If IsArray(FTPSites) Then
  89.         While SiteNum <= UBound(FTPSites)
  90.             'Check if the FTP Site specified by the user exists
  91.             FTPSiteID = -1
  92.             For Each FTPSite in Computer
  93.                 If FTPSite.Class = "IIsFtpServer" Then
  94.                     If FTPSite.ServerComment = FTPSites(SiteNum) Then
  95.                         FTPSiteID = FTPSite.Name
  96.                         Exit For
  97.                     End If
  98.                 End If
  99.             Next
  100.  
  101.             If (FTPSiteID = -1) Then
  102.                 Display "ERROR     ASTDeleteVirtualFTPDir --- Error accessing FTP site " & FTPSites(SiteNum) & ". Site may not exist."
  103.             Else
  104.                 'Get the Site's virtual root
  105.                 Set vRoot = GetObject("IIS://" & ComputerName & "/MSFTPSVC/" & FTPSiteID & "/root")
  106.                 If (Err <> 0) Then
  107.                     Display "ERROR     ASTCreateVirtualFTPDir --- Error accessing root on FTP site " & FTPSites(SiteNum) & "."
  108.                 Else
  109.                     DirNum = 0
  110.                     If (IsArray(DirNames) = True) Then
  111.                         While DirNum <= UBound(DirNames)
  112.                             'Delete the specified virtual directory
  113.                             Call vRoot.Delete("IIsFtpVirtualDir",DirNames(DirNum))
  114.                             If (Err <> 0) Then
  115.                                 Display "ERROR     ASTDeleteVirtualFTPDir --- Error deleting virtual directory " & DirNames(DirNum) & "on root of FTP site " & FTPSites(SiteNum) & ".  Directory may not exist."
  116.                             Else
  117.                                 Display "RUNNING   ASTDeleteVirtualFTPDir --- Deleted virtual FTP directory " & DirNames(DirNum) & " on root of FTP site " & FTPSites(SiteNum) & "."
  118.                             End If
  119.  
  120.                             Err = 0
  121.                             DirNum = DirNum + 1
  122.                         Wend
  123.                     End If
  124.                 End If
  125.             End If
  126.     
  127.             Err = 0
  128.             SiteNum = SiteNum + 1
  129.         Wend
  130.     Else
  131.         Display "ERROR     ASTDeleteVirtualFTPDir --- No FTP Sites to process."
  132.     End If
  133.     
  134.     Display "COMPLETED ASTDeleteVirtualFTPDir --- FTP virtual directories processing completed."
  135. End Sub