Solved

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

Posted on 2014-12-09
6
104 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 23

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
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
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 23

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

Complete Microsoft Windows PC® & Mac Backup

Backup and recovery solutions to protect all your PCs & Mac– on-premises or in remote locations. Acronis backs up entire PC or Mac with patented reliable disk imaging technology and you will be able to restore workstations to a new, dissimilar hardware in minutes.

Join & Write a Comment

Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
In this previous article (https://oddytee.wordpress.com/2016/05/05/provision-new-office-365-user-and-mailbox-from-exchange-hybrid-via-powershell/), we made basic license assignments to users in O365. When I say basic, the method is the simplest way …
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

705 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now