?
Solved

Adding NTFS Permissions for files that a different user has ownership of

Posted on 2014-12-09
6
Medium Priority
?
111 Views
Last Modified: 2014-12-10
I'm looking for a script that will add user NTFS permissions whenever a different user has ownership of files located in a specific directory.

For example:

For each file in directory J:\folder that user "Domain\UserName" is the owner of, add user "Domain\NewUser" with read/write permission.

I'm not sure how much it matters, but the server is 2003 R2.
0
Comment
Question by:CoreyN
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 4

Expert Comment

by:akalyan911
ID: 40488921
I think, creating the group policy for login script will work as you expected..

create the group policy for particular OU.. New Group Policy --> Under User configuration --> Drive Mapping --> \\Server Name\Sharedrive\Label As\

It will allow whomever is logged in having read & right permissions.. for that particular user..
0
 
LVL 1

Author Comment

by:CoreyN
ID: 40489166
Hi Akalyan911,

I'm only looking to have the permissions changes on a specific folder on a specific share.

Does Group Policy restrict itself to a specific folder of a specific share?
0
 
LVL 25

Accepted Solution

by:
NVIT earned 2000 total points
ID: 40490233
Note:
1. Please test an isolated folder first. I haven't tested the ICACLS line
2. To run it for real, remove the ECHO in front of icacls
3. DIR output to CurrOwners.txt is from Windows 2008 CMD prompt

@echo off
cls
set SrchFile=CurrOwners.txt
REM Current owner:
dir /a-d /q /x J:\folder >%SrchFile%

set SrchFile=CurrOwners.txt
set GrantChk=Domain\UserName
set GrantTo=Domain\NewUser

for /f "usebackq skip=7 tokens=5* delims= " %%a in (%SrchFile%) do (call :DoIt "%%a" "%%b")
goto :eof

:DoIt
echo.
set owner=%1
set fn=%2
if %fn%=="" goto :eof
echo owner=%owner%
echo fn=%fn%
if /i %owner%=="%GrantChk%" (
  ECHO icacls %fn% /grant %GrantTo%:^(R,W^)
)
goto :eof

Open in new window

0
Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

 
LVL 1

Author Comment

by:CoreyN
ID: 40491357
Hi NewVillageIT

Thanks for the batch file. It works!  The only caveat, is the batch needs to be run in the directory were I want the files to be changed are located.  This is because the icacls command is only being passed the file name and not the full path.

When running from the correct directory; it works great!

Many Thanks!
0
 
LVL 1

Author Closing Comment

by:CoreyN
ID: 40491360
Thanks for the quick response!
0
 
LVL 25

Expert Comment

by:NVIT
ID: 40492374
You're welcome. Glad to help.

Re: the "...only being passed the file name and not the full path", try change the DoIt section like:
:DoIt
echo.
set owner=%1
set fn=%2
set ffn=%~f2
if %fn%=="" goto :eof
echo owner=%owner%
echo fn=%fn%
if /i %owner%=="%GrantChk%" (
  ECHO icacls "%ffn%" /grant %GrantTo%:^(R,W^)
)
goto :eof

Open in new window

0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A procedure for exporting installed hotfix details of remote computers using powershell
While rebooting windows server 2003 server , it's showing "active directory rebuilding indices please wait" at startup. It took a little while for this process to complete and once we logged on not all the services were started so another reboot is …
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Suggested Courses

800 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question