+ Post New Thread
Results 1 to 4 of 4
Scripts Thread, Script to alter security on same folder in multiple folders in Coding and Web Development; I need a script (pref VB) to change permissions on a folder in multiple folders. Example, imagine users home directory, ...
  1. #1
    tosca925's Avatar
    Join Date
    Aug 2005
    Location
    Midlands
    Posts
    1,547
    Thank Post
    4
    Thanked 4 Times in 4 Posts
    Rep Power
    21

    Script to alter security on same folder in multiple folders

    I need a script (pref VB) to change permissions on a folder in multiple folders.

    Example, imagine users home directory, so a folder contains all the users. Each user has a folder insiide their home driectory called 'examples'. I need a script to search for that folder inside each users home directory and change the permissios to 'read, list folder contents'

    Can this be done?

    This is not being done on users home directories but this was the best example i could give.

    Or imagine their are 10 folders named 1 to 10. inside each folder are 5 folders named A,B,C,D and E. I want a script to search for the folder named 'D' and change the permission on that folder only.

  2. #2

    maniac's Avatar
    Join Date
    Feb 2007
    Location
    Kent
    Posts
    3,037
    Thank Post
    209
    Thanked 425 Times in 306 Posts
    Rep Power
    143

    Re: Script to alter security on same folder in multiple folders

    Well the there's a vbs version of xcacls which will let you modify NTFS permissions. I use it to modify local directory permissions on workstations at machine start up.

    As for it looking for all folders named 'D' in a directory tree, It can't do that itself, but it's a start.

    Link http://support.microsoft.com/kb/825751


    Mike.

    Edit:

    Cobbled together this bit of code which examines the directory tree under the specified directory, it then compares the all the folder and subfolder names to the specified folder name. If it finds a match it then calls the XCACLS.VBS script using the full folder path and the specified options. I've not tested this, so it may need some tweaking. I know the directory search bit works, just the line that calls XCACLS might need some adjusting.

    Code:
    Set objShell = CreateObject("WScript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    ShowSubfolders FSO.GetFolder("C:\SPECIFY\START\FOLDER")
    
    Sub ShowSubFolders(Folder)
        For Each Subfolder in Folder.SubFolders
            if Subfolder.Name = "FOLDERNAME" then 
    	runline = "c:\xcacls.vbs " & subfolder.Path & " /E /G etc. etc."
    	objShell.Run runline
    	End if
            ShowSubFolders Subfolder
        Next
    End Sub
    Hope that helps,

    Mike.

  3. #3

    Join Date
    Oct 2012
    Posts
    2
    Thank Post
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Hi Maniac (and others),

    Old post, but still of value to me for it aims to do exactly what I need. I can't however get it to fully work and wondered if you (or anyone else) can help me further.

    I can confirm the script on itself is working, as far as the searching for folders goes. I can also confirm the runline needs some tweaking.

    What I got so far is this (I entered my foldernames into your script and started tweaking the runline):

    Code:
    Set objShell = CreateObject("WScript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    ShowSubfolders FSO.GetFolder("J:\7. IT\9. IT only\TEMP\Test\TEST VB SCRIPT")
    
    Sub ShowSubFolders(Folder)
        For Each Subfolder in Folder.SubFolders
            if Subfolder.Name = "d" then
        runline = "cscript.exe c:\windows\xcacls.vbs " & subfolder.Path & " /I COPY"
        objShell.Run runline
        End if
            ShowSubFolders Subfolder
        Next
    End Sub
    As you can see i added cscript.exe at the beginning, for that seems to be requiered by xcacls.vbs
    I created a directory structure for testing purposes. When running the script, I see a certain number of cmd-windows popup and disappear again, 1 for each subfolder named "d" found, so the searchin for folders named "d" works. The runline however, does not do what I expect/want. It somehow seems to have a hard time dealing with subfolder.Path. The action (in this case remove inheritance, copy security settings) is not carried out.

    When I enter the runline in a cmd-window and use a real directorypath instead of subfolder.path, inheritance is in fact removed and security settings are being copied.

    Besides removing inheritance I as well want to add permissions; but first I got to get this working in it's simplest form, before I go deeper.

    I already tried runline = "cscript.exe c:\windows\xcacls.vbs " & "subfolder.Path" & " /I COPY", thinking the spaces in the path might be the problem, to no avail.

    J: is a network share. I as well tried the script locally on the dataserver (with edited folder paths), same result.

    Any ideas/suggestions ?

    Regards,

    A.
    Last edited by Adm1n; 26th October 2012 at 02:24 PM.

  4. #4

    Join Date
    Oct 2012
    Posts
    2
    Thank Post
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Problem solved. I added a messagebox which displayed the contents of the runline. This displayed the full command, and the problem was obvious right away. My folderpath which contains spaces was printed without quotes. Added quotes et voila.... the working code:

    Code:
    Set objShell = CreateObject("WScript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    ShowSubfolders FSO.GetFolder("J:\7. IT\9. IT only\TEMP\Test\TEST VB SCRIPT")
    
    Sub ShowSubFolders(Folder)
        For Each Subfolder in Folder.SubFolders
            if Subfolder.Name = "d" then
                rem Call MsgBox("cscript.exe c:\windows\xcacls.vbs """ &  Subfolder.Path & """ /I COPY" , vbOKOnly + vbInformation, "My  Script Title")
                runline = "cscript.exe c:\windows\xcacls.vbs """ & Subfolder.Path & """ /I COPY"
                objShell.Run runline
            End if
        ShowSubFolders Subfolder
        Next
    End Sub
    Now I still must complete the runline to do exactly what I want (remove inheritance and set specific permissions), but at least I got a working script now to start from.

    Regards,

    Adm1n

SHARE:
+ Post New Thread

Similar Threads

  1. Replies: 15
    Last Post: 19th September 2007, 10:46 PM
  2. VB Script to create folders
    By markesmith in forum Scripts
    Replies: 2
    Last Post: 26th April 2007, 03:03 PM
  3. Folder Security
    By Grommit in forum Windows
    Replies: 7
    Last Post: 25th September 2006, 03:32 PM
  4. Script to Create My Documents Subject Folders
    By SwedishChef in forum Scripts
    Replies: 15
    Last Post: 5th July 2006, 08:14 AM

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •