Author: brad
Date: 2006-06-04 00:30:27 +0000 (Sun, 04 Jun 2006)
New Revision: 16035

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=16035

Log:
Removed smb_addshare.vbs and replaced with smb_addshare.wsf.
smb_addshare.wsf checks to see if the share or directory already exist.
If they do, it removes them before trying to create them.


Added:
   branches/SOC/bnh/smb_addshare.wsf
Removed:
   branches/SOC/bnh/smb_addshare.vbs


Changeset:
Deleted: branches/SOC/bnh/smb_addshare.vbs
===================================================================
--- branches/SOC/bnh/smb_addshare.vbs   2006-06-03 22:42:25 UTC (rev 16034)
+++ branches/SOC/bnh/smb_addshare.vbs   2006-06-04 00:30:27 UTC (rev 16035)
@@ -1,58 +0,0 @@
-const READ_ONLY = 1
-const USAGE_STATEMENT = "Usage: cscript smb_addshare.vbs /username:<username> 
/sharename:<share name> /sharepath:<share path>"
-
-' This function returns the contents of a file.
-' When passed the name of a .vbs script and passed to execute, the contents
-' of the script are visible within the relevant scope of this script.
-function include(library_filename)
-        dim filesystem_object, file
-
-        set filesystem_object = CreateObject("Scripting.FileSystemObject")
-        set file = filesystem_object.OpenTextFile(library_filename, READ_ONLY)
-
-        include = file.readall
-        set file = nothing
-        set filesystem_object = nothing
-end function
-
-execute include("common.vbs")
-
-' Required command line options
-dim required_options, provided_options
-
-required_options = array("username", "sharename", "sharepath")
-set provided_options = wscript.arguments.named
-
-set setup_options = new setup_object
-setup_options.check_options provided_options, required_options
-
-if setup_options.error_code = RTN_ERR then
-        setup_options.list_missing_options
-        stdout.writeline USAGE_STATEMENT
-        wscript.quit(setup_options.error_code)
-end if
-
-username = provided_options.item("username")
-sharename = provided_options.item("sharename")
-pathname = provided_options.item("sharepath")
-
-' Check if the directory exists, and exit if it does.
-Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
-if fileSystemObject.FolderExists(pathname) Then
-       stdout.Write "Error: Directory " & pathname & " exists. Exiting." 
-       WScript.Quit
-End If
-
-' Create the directory to share.
-Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
-Set folder = fileSystemObject.CreateFolder(pathname)
-
-' Share the directory.
-Set shell = WScript.CreateObject("WScript.Shell")
-netsharecmd = "net share " & sharename & "=" & pathname & " /GRANT:" _
-        & username & ",FULL"
-shell.Run netsharecmd, 7, True
-
-' Remove share.
-' Delete shared directory.
-'fileSystemObject.DeleteFolder(pathname)

Added: branches/SOC/bnh/smb_addshare.wsf
===================================================================
--- branches/SOC/bnh/smb_addshare.wsf   2006-06-03 22:42:25 UTC (rev 16034)
+++ branches/SOC/bnh/smb_addshare.wsf   2006-06-04 00:30:27 UTC (rev 16035)
@@ -0,0 +1,104 @@
+<package>
+<job id=smb_addshare>
+<script language="VBScript" src="common.vbs">
+
+' A windows script (.wsf) to add a shared directory, written in VBScript.
+' Copyright Brad Henry <[EMAIL PROTECTED]> 2006
+' Released under the GNU GPL v2 or later.
+
+const USAGE_STATEMENT = "Usage: cscript smb_addshare.vbs /username:<username> 
/sharename:<share name> /sharepath:<share path>"
+
+function setup_dir(username, sharename, sharepath)
+
+       on error resume next
+
+       stdout.writeline(sharepath)
+
+       ' Check to see if the directory exists. If it does, delete it.
+       set fileSystemObject = createObject("scripting.fileSystemObject")
+       if fileSystemObject.folderExists(sharepath) then
+               stdout.writeline "Directory " & sharepath & " exists."
+               fileSystemObject.deleteFolder(sharepath)
+               if err.number <> 0 then
+                       stdout.writeline "Unhandled error occurred while " _
+                               & "removing directory " & sharepath & "."
+                       report_error
+                       wscript.quit(err.number)
+               end if
+               stdout.writeline "Directory " & sharepath & " removed."
+       end if
+
+       ' Create the directory to share.
+       set folder = fileSystemObject.createFolder(sharepath)
+       if err.number <> 0 then
+               stdout.writeline "Unhandled error occurred while " _
+                       & "creating directory " & sharepath & "."
+               report_error
+               wscript.quit(err.number)
+       end if
+       stdout.writeline "Directory " & sharepath & " created."
+       
+       local_machine = "."
+       set shares_list = getObject("WinNT://" & local_machine _
+               & "/LanmanServer,FileService")
+       for each share in shares_list
+               if share.name = sharename then
+                       stdout.writeline "Share " & sharename _
+                               & " exists."
+                       ' Remove the share.
+                       set shell = wscript.createObject("wscript.shell")
+                       netsharecmd = "net share " & sharename & " /DELETE"
+                       error_code = shell.run(netsharecmd, _
+                               NEW_WINDOW_MINIMIZED, True)
+                       if error_code = 0 then
+                               stdout.writeline "Share " & sharename _
+                                       & " removed."
+                       else
+                               stdout.writeline "Error: " & netsharecmd _
+                                       & " returned " & error_code & "."
+                       end if
+                       break
+               end if
+       next
+       
+       ' Share the directory.
+       set shell = wscript.createObject("wscript.shell")
+       netsharecmd = "net share " & sharename & "=" & sharepath & " /GRANT:" _
+               & username & ",FULL"
+       error_code = shell.run(netsharecmd, NEW_WINDOW_MINIMIZED, True)
+       if error_code = 0 then
+               stdout.writeline "Share " & sharename & " created."
+       else
+               stdout.writeline "Error: " & netsharecmd & " returned " _
+                       & error_code & "."
+       end if
+
+end function
+
+' Command line options.
+dim required_options, provided_options
+
+required_options = array("username", "sharename", "sharepath")
+set provided_options = wscript.arguments.named
+
+set setup_options = new setup_object
+setup_options.check_options provided_options, required_options
+
+if setup_options.error_code = RTN_ERR then
+        setup_options.list_missing_options
+        stdout.writeline USAGE_STATEMENT
+        wscript.quit(setup_options.error_code)
+end if
+
+username = provided_options.item("username")
+sharename = provided_options.item("sharename")
+sharepath = provided_options.item("sharepath")
+
+' Check to see if the directory exists.
+' If it does, delete and recreate it.
+' If it does not, create it. Do the same for the share.
+setup_dir username, sharename, sharepath
+
+</script>
+</job>
+</package>

Reply via email to