Solved

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

Posted on 2014-12-09
6
108 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
  • 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 24

Accepted Solution

by:
NVIT earned 500 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
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
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 24

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

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Utilizing an array to gracefully append to a list of EmailAddresses
ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.

831 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