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, ...
-
17th October 2007, 10:42 PM #1 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.
-
-
IDG Tech News
-
1st November 2007, 12:31 AM #2 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.
-
-
26th October 2012, 10:25 AM #3
- 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.
-
-
26th October 2012, 02:15 PM #4
- 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: 
Similar Threads
-
By timbo343 in forum Scripts
Replies: 15
Last Post: 19th September 2007, 10:46 PM
-
By markesmith in forum Scripts
Replies: 2
Last Post: 26th April 2007, 03:03 PM
-
By Grommit in forum Windows
Replies: 7
Last Post: 25th September 2006, 03:32 PM
-
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
-
Forum Rules