Elk bestand of map in een NTFS volume heeft een eigenaar. Bepaalde systeembestanden zijn eigendom van TrustedInstaller, sommige van SYSTEM account, en andere van de “Administrators” groep. Als een gebruiker een bestand of map aanmaakt, is die gebruiker meestal de eigenaar van het bestand of de map. De eigenaar is degene die machtigingen (Toestaan of Weigeren) kan toewijzen aan andere gebruikers voor dat object.
Als een gebruiker geen eigenaar is van een bestand of map of geen machtigingen heeft voor toegang tot het bestand, krijgt hij de foutmelding “toegang wordt geweigerd” bij het openen van het object. Indien die gebruiker een administrator is, kan hij eigenaar worden van het object via het tabblad Eigenschappen – Beveiliging van het bestand of de map. Vervolgens kan hij zichzelf de vereiste machtigingen toewijzen.
Dit bericht vertelt u hoe u de eigendom van een bestand of map kunt overnemen, en de vereiste machtigingen ervoor kunt toewijzen met behulp van de opdrachtregel in plaats van de GUI.
Windows bevat een opdrachtregel-tool genaamd Takeown.exe, dat kan worden gebruikt vanuit een beheerdersopdrachtprompt om snel het eigendom van een bestand of map te wijzigen. Hier wordt uitgelegd hoe u de eigendom van een bestand of map kunt overnemen en vervolgens machtigingen kunt toewijzen aan een account met behulp van de opdrachtregel.
- Eigendom van een bestand overnemen
- Bestandsmachtigingen toewijzen
- Eigendom nemen van een map
- Eigendom recursief wijzigen:
- Mapmachtigingen toewijzen
- Command-line help:
- Makkelijkere methoden voor het overnemen van eigendom
- Command Script
- Voeg de opdracht “Take Ownership” toe aan het rechtermuisknop menu
- Aanvullende informatie
- icacls.exe kan ook de eigendom van een bestand of map wijzigen!
- Eigendom van een bestand of map wijzigen met icacls.exe
- Voorbeelden: Set #1: Eigendom van een enkel bestand of een enkele map wijzigen
- Voorbeeld #2: Het eigendom van een map (submappen en bestanden) recursief wijzigen
- Eigendom terugdraaien naar TrustedInstaller
- Gebruik icacls.exe commando om TrustedInstaller in te stellen als de eigenaar van een bestand
- icacls /setowner access denied?
- SetACL.exe gebruiken om eigendom te nemen en rechten toe te wijzen
- SetACL: Command-line argumenten
- Voorbeelden: Eigendom van een enkel bestand of een enkele map wijzigen:
- Voorbeelden: Eigendom recursief wijzigen:
- Voorbeelden: Wijs de vereiste machtigingen toe voor een bestand of map:
- Voorbeelden: Wijs de vereiste machtigingen recursief toe:
Eigendom van een bestand overnemen
Open een hoog Command Prompt-venster. Gebruik de volgende syntaxis om het eigendom van een bestand over te nemen:
TAKEOWN /F <filename>
Vervang <filename> door de werkelijke bestandsnaam met het volledige pad.
De momenteel aangemelde gebruiker is nu de eigenaar van het bestand.
Om de groep Administrators
de eigenaar van het bestand te maken, gebruikt u bovendien de schakeloptie /A
:
TAKEOWN /F <filename> /A
-
/A
Geeft het eigendom aan de groep Administrators in plaats van aan de huidige gebruiker. Als/A
niet wordt opgegeven, wordt het eigendom van bestanden toegekend aan de gebruiker die op dat moment is ingelogd. Deze parameter is niet hoofdlettergevoelig.
Als de bewerking is geslaagd, ziet u het volgende bericht:
“SUCCES: Het bestand (of de map): “bestandsnaam” is nu eigendom van gebruiker “ComputernaamGebruikersnaam”.”
of
SUCCES: Het bestand (of de map): “bestandsnaam” is nu eigendom van de beheerdersgroep.
Bestandsmachtigingen toewijzen
Om beheerders volledige machtigingen voor het bestand te geven, gebruikt u ICACLS. Dit is de syntaxis:
ICACLS <filename> /grant administrators:F
Voorbeeld 2: Om Full Control-machtigingen toe te kennen aan de momenteel aangemelde gebruiker, gebruikt u dit commando:
ICACLS <filename> /grant %username%:F
%username% vertegenwoordigt de accountnaam van de momenteel aangemelde gebruiker. ICacls accepteert deze variabele rechtstreeks.
Voorbeeld 3: Om Full Control-machtigingen toe te wijzen aan de gebruiker met de naam John
, gebruikt u dit commando:
ICACLS <filename> /grant John:F
Eigendom nemen van een map
Gebruik de volgende syntaxis:
takeown /f <foldername>
(of)
takeown /f <foldername> /a
-
/a
Geeft het eigendom aan de groep Administrators in plaats van aan de huidige gebruiker. Als/a
niet wordt opgegeven, wordt het eigendom gegeven aan de momenteel aangemelde gebruiker. Deze parameter is niet hoofdlettergevoelig.
U krijgt de volgende uitvoer te zien:
SUCCES: Het bestand (of de map): “map_naam” is nu eigendom van gebruiker “computernaam”
(of)
SUCCES: Het bestand (of de map): “map_naam” is nu eigendom van de groep administrators.
Eigendom recursief wijzigen:
Om het eigendom van een map, de submappen en de bestanden in elke submap te wijzigen, gebruikt u deze syntaxis:
takeown /f <foldername> /r /d y
De momenteel aangemelde gebruiker is nu de eigenaar van de map.
Om de Administrators
groep in te stellen als de eigenaar van de map, de submappen, en de bestanden recursief, gebruikt u de /A
switch daarnaast:
TAKEOWN /F <foldername> /a /r /d y
-
/R
Recurse: instrueert het programma om de bestanden in de gespecificeerde directory en alle submappen te bewerken. -
/D
prompt Standaard antwoord gebruikt wanneer de huidige gebruiker niet de “list folder” permissie heeft op een directory. Dit komt voor bij recursief werken (/R) op submappen. Geldige waarden “Y” om eigenaar te worden of “N” om over te slaan.
Mapmachtigingen toewijzen
Om de groep Administrators volledige beheermachtigingen voor de map te geven, gebruikt u deze syntaxis:
icacls <foldername> /grant administrators:F /T
De parameter /T wordt toegevoegd zodat de bewerking wordt uitgevoerd via alle submappen en bestanden in die map.
Command-line help:
Om de volledige gebruiksinformatie te weten te komen voor Takeown.exe en ICacls.exe, voert u deze opdrachten uit vanuit een opdrachtpromptvenster.
takeown /?
icacls /?
Makkelijkere methoden voor het overnemen van eigendom
Command Script
Om het proces van het overnemen van eigendom verder te vereenvoudigen, biedt Tim Sneath van Microsoft een .CMD-bestand (Windows Command Script) dat eigendom overneemt en beheerders volledige beheerbevoegdheden voor de map geeft. Voor meer informatie, lees Tim’s post, getiteld Secret #11: Het verwijderen van de Undeletable.
Dit maakt weer gebruik van het speciale runas werkwoord in Windows Vista en hoger, dat ik eerder heb behandeld (REF RunAs).
via WinMatrix.com
Download takeown_context.reg en sla het op op het Bureaublad. Klik met de rechtermuisknop op het bestand en kies Samenvoegen. Klik op Ja wanneer u om bevestiging wordt gevraagd. Hiermee wordt een uitgebreide opdracht genaamd Eigendom nemen toegevoegd aan het contextmenu voor bestanden en mappen. Om de opdracht te openen, moet u de SHIFT-toets ingedrukt houden en dan met de rechtermuisknop klikken op een bestand of map.
(Meer informatie over deze fijnafstelling vindt u in het artikel Eigendom van bestand of map nemen via contextmenu met rechtermuisknop in Windows.)
Aanvullende informatie
Het bovenstaande gedeelte bevat de meeste zaken die u nodig hebt. Lees hieronder als u meer tips over dit onderwerp nodig hebt.
icacls.exe kan ook de eigendom van een bestand of map wijzigen!
Takeown.exe en Icacls.exe zijn de twee ingebouwde console-hulpprogramma’s in Windows, waarmee u respectievelijk de eigendom van bestanden of mappen kunt wijzigen en toegangsbeheerpermissies kunt toewijzen. Takeown.exe stelt het momenteel ingelogde gebruikersaccount in als eigenaar van een object (bestand of map).
Maar met Takeown.exe kunt u geen ander account eigenaar maken van een object.
Wist u dat het icacls.exe hulpprogramma ook kan worden gebruikt om de eigendom te wijzigen?
Om de eigendom te wijzigen naar een account van een derde partij (d.w.z., de account die momenteel niet is ingelogd) of groep, kunt u icacls.exe gebruiken met het /setowner
opdrachtregelargument, in plaats van takeown.exe.
Eigendom van een bestand of map wijzigen met icacls.exe
We hebben gezien hoe u het eigendom kunt wijzigen met icacls.exe in het laatste deel van het artikel Eigendom van een bestand of map wijzigen met behulp van opdrachtregel in Windows. Hier volgen nog enkele voorbeelden:
Het volgende is de command-line syntaxis om het eigendom van een bestand of map te wijzigen met icacls.exe:
icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"
Voorbeelden: Set #1: Eigendom van een enkel bestand of een enkele map wijzigen
icacls "D:\Annual Reports20\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Administrators"
Als de bewerking succesvol was, ziet u het volgende bericht:
processed file: file_or_folder_nameSuccessfully processed 1 files; Failed processing 0 files
Voorbeeld #2: Het eigendom van een map (submappen en bestanden) recursief wijzigen
Om het eigendom van een map, de submappen en alle bestanden in alle submappen recursief te wijzigen, gebruikt u de schakeloptie /T
(traverse) als aanvulling:
icacls "folder_name" /setowner "Administrators" /T
-
/T
geeft aan dat deze bewerking wordt uitgevoerd op alle overeenkomende bestanden/mappen onder de mappen die in de naam zijn opgegeven.
De bovenstaande opdracht stelt TrustedInstaller in als eigenaar van de map, de submappen en alle bestanden in alle submappen.
Eigendom terugdraaien naar TrustedInstaller
Om een probleem op te lossen, moet u soms een gegevensbestand wijzigen, zoals XML of een registersleutel die eigendom is van TrustedInstaller. Daarvoor moet u eerst het eigendom van het bestand, de map of de registersleutel overnemen.
Nadat u de bestanden of instellingen hebt gewijzigd, moet u het eigendom terugzetten op TrustedInstaller, als TrustedInstaller de vorige of oorspronkelijke eigenaar was. Voer de volgende stappen uit om het eigendom terug te zetten op TrustedInstaller:
De Windows Modules Installer-service of TrustedInstaller maakt de installatie, wijziging en verwijdering van Windows-updates en optionele onderdelen mogelijk. Standaard is TrustedInstaller ook de eigenaar van veel kritieke registersleutels en systeembestanden.
- Klik met de rechtermuisknop op een bestand of registersleutel en klik op Machtigingen.
- Klik op Geavanceerd om het dialoogvenster Geavanceerde beveiligingsinstellingen te openen.
- Nader “Eigenaar:”, klik op Wijzigen.
- In het dialoogvenster Selecteer gebruiker of groep typt u “
NT SERVICE\TrustedInstaller
” en drukt u op ENTER.
- Klik op Toepassen, OK.
Hiermee wijzigt u het eigendom van het object (bestand, map of registersleutel) in TrustedInstaller of Windows Modules Installer.
Gebruik icacls.exe commando om TrustedInstaller in te stellen als de eigenaar van een bestand
Vanuit een admin Command Prompt venster, gebruik de volgende command-line syntax:
icacls "path\filename" /setowner "NT Service\TrustedInstaller"
Voorbeeld:
icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"
TrustedInstaller is nu eigenaar van het bestand WindowsStore.admx.
icacls /setowner access denied?
Soms kan de icacls.exe /setowner
command-line de volgende fout tegenkomen:
filename: Access is denied.Successfully processed 0 files; Failed processing 1 files
Dit kan gebeuren wanneer het een NTFS hard link tegenkomt. De fout treedt meestal op wanneer u probeert het eigendom van beschermde bestanden in de Windows-directory te wijzigen – bijvoorbeeld C:\Windows\Notepad.exe
. Een hard-link is de bestandssysteemweergave van een bestand waarbij meer dan één pad naar een enkel bestand in hetzelfde volume verwijst.
Bijv. de bestanden Notepad.exe hebben twee hard-linked bestanden, die u kunt zien met het volgende commando:
fsutil.exe hardlink list C:\Windows\notepad.exe
U kunt zien dat Notepad.exe een hard-link heeft naar de volgende bestanden:
C:\Windows\System32\Notepad.exeC:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe
Het icacls.exe /setowner
-commando komt de ACCESS_DENIED
-fout tegen bij het verwerken van deze hard-links.
Merk op dat de icacls.exe-documentatie zegt: “Deze optie forceert geen verandering van eigendom; gebruik daarvoor het hulpprogramma takeown.exe.”
Als u “Access is Denied” fouten tegenkomt bij het instellen van eigendom met behulp van Icacls, moet u wellicht terugvallen op Takeown.exe, SubInACL, of het derde partij SetACL.exe (zie volgende paragraaf) command-line hulpprogramma.
SetACL.exe gebruiken om eigendom te nemen en rechten toe te wijzen
SetACL.exe is een derde partij command-line hulpprogramma (van HelgeKlein.com) die we eerder hebben behandeld.
SetACL: Command-line argumenten
Voordat we verder gaan, laten we de command-line syntaxis zien voor het veranderen van bestand/registry eigendom en permissies met behulp van SetACL.
SetACL -on objectname -ot objecttype -actn action
-
-on
: Specificeer het pad naar het object waarop SetACL moet werken (bijv, bestand, registersleutel, netwerkshare, service of printer). -
-ot
: Geef het objecttype op. Als u het eigendom of de machtigingen van een bestand of map wilt wijzigen, gebruikt u objecttypefile
. Voor registersleutels gebruikt u het objecttypereg
-
-actn
: Specificeer de actie voor wat SetACL moet doen met het gespecificeerde object. Voor het nemen van eigendom, stel de actie in alssetowner
. Om rechten te wijzigen, stelt u de actie in alsace
. -
-ownr
: Specificeer de naam of het SID van een beheerder (een gebruiker of groep) in dit formaat – bijv."n:Administrators"
(Zie de SetACL-documentatie voor de volledige lijst met objecten, typen en ondersteunde acties.)
Om eigendom te wijzigen en volledige machtiging te verlenen, volgen hier enkele voorbeelden:
Voorbeelden: Eigendom van een enkel bestand of een enkele map wijzigen:
setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:John"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:John"
Voorbeelden: Eigendom recursief wijzigen:
Optie 1: Om het eigendom van een map en zijn submappen (niet voor bestanden) recursief in te stellen, gebruikt u een van deze voorbeelden:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont
-
-rec
– recursie is ingeschakeld. -
cont
– Recurse, en alleen directories verwerken.
Optie 2: Om eigendom van bestanden in een map en zijn submappen (niet voor mappen) recursief in te stellen, gebruikt u een van deze voorbeelden:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec obj
-
-rec
– recursie is ingeschakeld. -
obj
– Recursie, en alleen bestanden verwerken.
Optie 3: Om eigendom van een map, de submappen en de bestanden recursief in te stellen, gebruikt u een van deze voorbeelden:
setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont_obj
-
-rec
– recursie is ingeschakeld. -
cont_obj
– Recursie, en alleen mappen en bestanden verwerken.
Voorbeelden: Wijs de vereiste machtigingen toe voor een bestand of map:
Als u eenmaal het eigendom hebt, kunt u de vereiste machtigingen voor een object toewijzen. Hier volgen enkele voorbeelden:
Om de machtigingen voor een enkel bestand of een enkele map toe te wijzen, gebruikt u een van deze voorbeelden:
setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:John;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full"
Voorbeelden: Wijs de vereiste machtigingen recursief toe:
Optie 1: Voor een map en submappen (geen bestanden) recursief, gebruik een van deze voorbeelden:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec contsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont
-
-rec
– recursie is ingeschakeld. -
cont
– Recurse, en alleen directories verwerken.
Optie 2: Voor bestanden in een map en submappen (geen mappen) recursief, gebruik een van deze voorbeelden:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec obj
-
-rec
– recursie is ingeschakeld. -
obj
– Recursie, en alleen bestanden verwerken.
Optie 3: Voor een map, zijn submappen, en de bestanden recursief, gebruik een van deze voorbeelden:
setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec cont_objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont_obj
-
-rec
– recursie is ingeschakeld. -
cont_obj
– Recursie, en verwerk directories en bestanden.
U kunt de officiële documentatie van SetACL bekijken om de volledige mogelijkheden te leren kennen. Echter, voor het instellen van & permissies voor eigendom van bestanden en mappen, zouden takeown.exe en icacls.exe meer dan voldoende zijn voor de meeste gebruikers.