Wednesday, 28 December 2011

Problems with taking ownership / access rights in Windows 7

If you ever suffered the major and incredibly frustrating problems with Windows 7 when moving an NTFS hard disk to a new PC, or reinstalling the OS: the inability to open, delete, take ownership, or amend permissions on files or folders, then look no further than this thread on Microsoft social support forums

Note my post towards the end of that thread, made today, which amends the excellent original instructions provided by ColtWanger (lol) as follows:

I have thousands of files across hundreds of folders that Win7 simply won't allow me to access since I moved the drive from another machine. I have SP1 installed and although I haven't wasted any more time messing with permissions and audit rights I'm still getting the same issues with being denied access when I try to open the files. So I followed Coltwanger's advice above and amended slightly for my needs:

click Start and type CMD
right-click Command Prompt to run as Administrator

in the cmd window, use cd to find the relevant folder or drive root. In my case this required two commands, D: then cd\

First run TAKEOWN to take ownership.

TAKEOWN /F *.* /A /R /D Y
/F *.* processes all files/folders
/R recurs for all subfolders and files
/A takes permission for the Administrators group (I could easily have specified my own username, or omitted this switch, it shouldn't be necessary as I'm running CMD as Administrator anyway but I was wary that the next step might have failed)
/D Y suppresses the confirmation prompts

Then run ICACLS -- I amended with /grant:R to replace all existing permissions. This fixes a bug where unrecognised owners can remain in place. You can manually add extra user permissions via Windows once this is done.

ICACLS D:\* /grant:R baldmosher:F /T

Successfully processed 31380 files, 0 failures. YAAAAAY!!!!

Update 2012-02-08:

I made copies of all the above folders onto a different hard drive, once I got admin access to them, just to make sure that the permissions from my new HomeGroup setup are the default on all the folders. Much easier than trying to second guess Windows and set them yourself using command line options.

Update 2012-08-05: 

Today I realised my wife couldn't access the shares from her laptop.  I thought about adding her to every shared folder, but I figured it was easier to do it properly, and give access to the HomeGroup.

I also realised she didn't have a user ID on this machine, so I had to do that first (making sure the username and password matched the one on her laptop), then the following at command line run as Administrator:

ICACLS D:\* /grant:R HomeUsers:F /T