Xcacls.exe gebruiken om NTFS-machtigingen te wijzigen

Samenvatting

Er is een bijgewerkte versie van het hulpprogramma Extended Change Access Control List (Xcacls.exe) beschikbaar als Microsoft Visual Basic-script (Xcacls.vbs) van Microsoft. In dit artikel wordt stapsgewijs beschreven hoe u met het script Xcacls.vbs te wijzigen en de NTFS-machtigingen voor het bestandssysteem voor bestanden of mappen weergeven. U kunt Xcacls.vbs gebruiken vanaf de opdrachtregel opties in te stellen alle bestand systeem beveiliging die toegankelijk in Microsoft Windows Verkenner zijn. Xcacls.vbs Hiermee en toegangsbeheerlijsten (ACL's) van bestanden wijzigen.

Opmerking Xcacls.vbs is alleen compatibel met Microsoft Windows 2000, Microsoft Windows XP en Microsoft Windows Server 2003. Xcacls.vbs wordt niet ondersteund door Microsoft.

terug naar boven

Instellen en gebruiken van Xcacls.vbs

Ga als volgt te werk om in te stellen en gebruik van Xcacls.vbs:
  1. De meest recente versie van Xcacls.vbs vanaf de volgende Microsoft-website:
  2. Dubbelklik op Xcacls_Installer.exe. Wanneer u wordt gevraagd naar een locatie voor de uitgepakte bestanden, geeft u een map die zich in de computer van het zoekpad, bijvoorbeeld C:\Windows.
  3. Wijzig de scriptverwerkingsengine van Wscript in Cscript. (Het script Xcacls.vbs werkt het beste in Cscript.) Hiertoe typt u de volgende opdracht bij een opdrachtprompt en druk vervolgens op ENTER:
    cscript.exe /h:cscript
    Opmerking De standaardwaarde instelt op Cscript alleen van invloed op hoe de scripts schrijven om het scherm te wijzigen. In WScript wordt elke regel afzonderlijk aan een dialoogvenster OK . Cscript wordt elke regel naar het opdrachtvenster. Als u niet wijzigen van de standaard scripting engine wilt, moet u het script uitvoeren met de volgende opdracht
    cscript.exe xcacls.vbs
    Overwegende dat, als u de standaardinstelling in Cscript wijzigen, u het script met de volgende opdracht uitvoeren kunt:
    xcacls.vbs
    .
  4. De syntaxis van de opdracht Xcacls.vbs typt de volgende opdracht bij een opdrachtprompt:
    xcacls.vbs /?
terug naar boven

Syntaxis voor de opdracht Xcacls.vbs

Het volgende resultaat van de xcacls.vbs /? opdracht wordt de syntaxis van de opdracht Xcacls.vbs beschreven:
Usage:XCACLS filename [/E] [/G user:perm;spec] [...] [/R user [...]]
[/F] [/S] [/T]
[/P user:perm;spec [...]] [/D user:perm;spec] [...]
[/O user] [/I ENABLE/COPY/REMOVE] [/N
[/L filename] [/Q] [/DEBUG]

filename [Required] If used alone, it displays ACLs.
(Filename can be a filename, directory name or
wildcard characters and can include the whole
path. If path is missing, it is assumed to be
under the current directory.)
Notes:
- Put filename in quotes if it has spaces or
special characters such as &, $, #, etc.
- If filename is a directory, all files and
subdirectories under it will NOT be changed
unless the /F or S is present.

/F [Used with Directory or Wildcard] This will change all
files under the inputted directory but will NOT
traverse subdirectories unless /T is also present.
If filename is a directory, and /F is not used, no
files will be touched.

/S [Used with Directory or Wildcard] This will change all
subfolders under the inputted directory but will NOT
traverse subdirectories unless /T is also present.
If filename is a directory, and /S is not used, no
subdirectories will be touched.

/T [Used only with a Directory] Traverses each
subdirectory and makes the same changes.
This switch will traverse directories only if the
filename is a directory or is using wildcard characters.
/E Edit ACL instead of replacing it.

/G user:GUI Grant security permissions similar to Windows GUI
standard (non-advanced) choices.
/G user:Perm;Spec Grant specified user access rights.
(/G adds to existing rights for user)

User: If User has spaces in it, enclose it in quotes.
If User contains #machine#, it will replace
#machine# with the actual machine name if it is a
non-domain controller, and replace it with the
actual domain name if it is a domain controller.

New to 3.0: User can be a string representing
the actual SID, but MUST be lead by SID#
Example: SID#S-1-5-21-2127521184-160...
(SID string shown has been shortened)
(If any user has SID# then globally all
matches must match the SID (not name)
so if your intention is to apply changes
to all accounts that match Domain\User
then do not specify SID# as one of the
users.)

GUI: Is for standard rights and can be:
Permissions...
F Full control
M Modify
X read and eXecute
L List folder contents
R Read
W Write
Note: If a ; is present, this will be considered
a Perm;Spec parameter pair.

Perm: Is for "Files Only" and can be:
Permissions...
F Full control
M Modify
X read and eXecute
R Read
W Write
Advanced...
D Take Ownership
C Change Permissions
B Read Permissions
A Delete
9 Write Attributes
8 Read Attributes
7 Delete Subfolders and Files
6 Traverse Folder / Execute File
5 Write Extended Attributes
4 Read Extended Attributes
3 Create Folders / Append Data
2 Create Files / Write Data
1 List Folder / Read Data
Spec is for "Folder and Subfolders only" and has the
same choices as Perm.

/R user Revoke specified user's access rights.
(Will remove any Allowed or Denied ACL's for user.)

/P user:GUI Replace security permissions similar to standard choices.

/P user:perm;spec Replace specified user's access rights.
For access right specification see /G option.
(/P behaves like /G if there are no rights set for user.)

/D user:GUI Deny security permissions similar to standard choices.
/D user:perm;spec Deny specified user access rights.
For access right specification see /G option.
(/D adds to existing rights for user.)

/O user Change the Ownership to this user or group.

/I switch Inheritance flag. If omitted, the default is to not touch
Inherited ACL's. Switch can be:
ENABLE - This will turn on the Inheritance flag if
it is not on already.
COPY - This will turn off the Inheritance flag and
copy the Inherited ACL's
into Effective ACL's.
REMOVE - This will turn off the Inheritance flag and
will not copy the Inherited
ACL's. This is the opposite of ENABLE.
If switch is not present, /I will be ignored and
Inherited ACL's will remain untouched.

/L filename Filename for Logging. This can include a path name
if the file is not under the current directory.
File will be appended to, or created if it does not
exit. Must be Text file if it exists or error will occur.

If filename is omitted, the default name of XCACLS will
be used.

/Q Turn on Quiet mode. By default, it is off.
If it is turned on, there will be no display to the screen.


/DEBUG Turn on Debug mode. By default, it is off.
If it is turned on, there will be more information
displayed and/or logged. Information will show
Sub/Function Enter and Exit as well as other important
information.

/SERVER servername Enter a remote server to run script against.

/USER username Enter Username to impersonate for Remote Connections
(requires PASS switch). Will be ignored if it is for a Local Connection.

/PASS password Enter Password to go with USER switch
(requires USER switch).


Wildcard characters can be used to specify more than one file in a command, such as:
* Any string of zero or more characters
? Any single character

You can specify more than one user in a command.
You can combine access rights.


terug naar boven

Gebruik van Xcacls.vbs om machtigingen te bekijken


U kunt Xcacls.vbs ook gebruiken om machtigingen voor bestanden of mappen weer te geven. Bijvoorbeeld, als u een map met de naam C:\Test hebt, typ het volgende achter de opdrachtprompt om de machtigingen voor de map bekijken en druk vervolgens op ENTER:
xcacls.vbs c:\test
In het volgende voorbeeld wordt een gangbaar resultaat:
C:\>XCACLS.VBS c:\testMicrosoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Starting XCACLS.VBS (Version: 3.4) Script at 6/11/2003 10:55:21 AM

Startup directory:
"C:\test"

Arguments Used:
Filename = "c:\test"



**************************************************************************
Directory: C:\test

Permissions:
Type Username Permissions Inheritance

Allowed BUILTIN\Administrators Full Control This Folder, Subfolde
Allowed NT AUTHORITY\SYSTEM Full Control This Folder, Subfolde
Allowed Domain1\User1 Full Control This Folder Only
Allowed \CREATOR OWNER Special (Unknown) Subfolders and Files
Allowed BUILTIN\Users Read and Execute This Folder, Subfolde
Allowed BUILTIN\Users Create Folders / Appe This Folder and Subfo
Allowed BUILTIN\Users Create Files / Write This Folder and Subfo

No Auditing set

Owner: Domain1\User1


Opmerking De uitvoer van de opdracht xcacls.vbs c:\test in dit voorbeeld komt overeen met de tekst die wordt weergegeven in de grafische gebruikersinterface (GUI). Enkele woorden worden afgebroken in het opdrachtvenster.

Het resultaat bevat ook de versie van het script, de opstartmap en de gebruikte argumenten.


U kunt ook jokertekens gebruiken om bepaalde bestanden in de map weer te geven. Als u het volgende typt, alle bestanden met de extensie 'Log' die zijn bijvoorbeeld in de weergegeven map C:\Test:
xcacls.vbs c:\test\*.log
terug naar boven

Voorbeelden


De volgende opdrachten voor Xcacls.vbs geven enkele voorbeelden van het gebruik van Xcacls.vbs.

xcacls.vbs c:\test\ /g domain\testuser1:f /f /t /e
Met deze opdracht bewerkt u bestaande machtigingen. Het verleent Domein\Testgebruiker1 volledig beheer over alle bestanden in C:\Test, bladert door de submappen onder C:\Test en wijzigt eventuele gevonden bestanden. Met deze opdracht worden geen mappen.
xcacls.vbs c:\test\ /g domain\testuser1:f /s /l "c:\xcacls.log"
Deze opdracht vervangt u bestaande machtigingen. Het verleent Domein\Testgebruiker1 volledig beheer voor alle submappen onder C:\Test en registreert C:\Xcacls.log. Met deze opdracht niet van invloed op bestanden en worden geen mappen doorgebladerd.
xcacls.vbs c:\test\readme.txt /o "machinea\group1"
Met deze opdracht wijzigt de eigenaar van Leesmij.txt in de groep Machinea\groep1.
xcacls.vbs c:\test\badcode.exe /r "machinea\group1" /r "domain\testuser1"
Deze opdracht trekt u de machtigingen op C:\Test\Badcode.exe in voor Machinea\groep1 en voor Domein\Testgebruiker1.
Xcacls.BS c:\test\subdir1 /i enable /q
Met deze opdracht schakelt u overname in voor de map C:\Test\Subdir1. Hiermee onderdrukt u de uitvoer op het scherm.
xcacls.vbs \\servera\sharez\testpage.htm /p "domain\group2":14
Met deze opdracht maakt u extern verbinding met \\ServerA\ShareZ via Windows Management Instrumentation (WMI). Vervolgens wordt het lokale pad van die share en onder dat pad de machtigingen op Testpage.htm worden gewijzigd. Laat de bestaande machtigingen van Domein\Groep2 intact, maar machtigingen 1 (gegevens lezen) en 4 (uitgebreide kenmerken lezen) worden toegevoegd. De opdracht negeert andere machtigingen voor het bestand, omdat de schakeloptie /e niet is gebruikt.
Xcacls.BS d:\default.htm /g "domein\groep2": f/server servera/user servera\admin/pass wachtwoord /e
Met deze opdracht wordt WMI gebruikt om op afstand verbinding maken als ServerA\Admin met ServerA en worden volledige machtigingen voor standaard.htm verleend aan Domein\Groep2. Bestaande machtigingen voor Domein\Groep2 gaan verloren en andere machtigingen voor het bestand blijven staan.
terug naar boven

Referenties

Voor meer informatie over het gebruik van Xcacls.exe, klikt u op het volgende artikel in de Microsoft Knowledge Base:

Hoe u 318754 kunt Xcacls.exe gebruiken om NTFS-machtigingen te wijzigen

Eigenschappen

Artikel-id: 825751 - Laatst bijgewerkt: 18 feb. 2017 - Revisie: 3

Feedback