Gruppenberechtigungen können mit ICACLS unter Windows Server 2012 nicht zugewiesen werden

9

Ich kann icacls nicht dazu bringen, meine Gruppe zum Hinzufügen von Berechtigungen zu akzeptieren. Ich verwende eine erhöhte Power Shell mit dem folgenden Befehl:

icacls 'C:/foo' /grant:r 'Group Foo':f

Ich erhalte folgenden Fehler:

Invalid parameter "Group Foo"

Ich habe auch versucht, die SUID zu verwenden, aber das schlägt auch fehl. Ich habe auch 'Domain \ Group Foo' ausprobiert.

Ich habe eine Reihe von Dateien, die ich einer Gruppe erlauben möchte. Was ist der richtige Weg, um Massenberechtigungen in Windows Server 2012 hinzuzufügen?

- BEARBEITEN -

E:\> icacls "E:/Contact Numbers.xlsx" /grant:r "Users":f
Invalid parameter "Users"
user319862
quelle

Antworten:

10

Verwenden Sie doppelte Anführungszeichen anstelle von einfachen Anführungszeichen:

C:\>mkdir foo

C:\>icacls 'C:/foo' /grant:r 'Users':f
'Users': No mapping between account names and security IDs was done.
Successfully processed 0 files; Failed processing 1 files

C:\>icacls "C:/foo" /grant:r "Users":f
processed file: C:/foo
Successfully processed 1 files; Failed processing 0 files

Ich habe vermisst, dass Sie Powershell verwendet haben, nicht cmd. Powershell hat eine gewisse Verrücktheit beim Mischen externer Befehle und Zitieren. Hier sind einige Beispiele mit Powershell.

PS v2: Um die Zitate weiterzugeben icacls, müssen Sie ihnen mit einem Caret entkommen. Beachten Sie, dass Klammern um das "F" ebenfalls maskiert werden müssen.

PS C:\>icacls `"C:/foo`" /grant:r `"Users`":`(F`)

PS v3: Version 3 bietet eine neue Escape-Sequenz --%(Bindestrich, Bindestrich, Prozent), die dem Rest der Zeile entgeht. Dies macht auch komplexe externe Parameter einfach.

PS C:\>icacls --% "C:/foo" /grant:r "Users":F
jscott
quelle
Siehe meine Bearbeitung oben. Das hat auch nicht funktioniert. Beachten Sie, dass ich "Ungültige Parameter"
-Fehler
Ich habe es einfach noch einmal mit der Eingabeaufforderung anstelle der Power Shell versucht und es hat funktioniert. Ich weiß nicht, wo das Problem liegt, aber danke für die korrekte Syntax.
user319862
Entschuldigung, ich habe total übersprungen, dass du PS benutzt hast. Aktualisiert, um Beispiele für PS 2/3 aufzunehmen.
Jscott
Für die Leute, die sich beschweren, dass es nicht funktioniert, müssen Sie den Befehl in der Eingabeaufforderung verwenden. Der Befehl funktioniert nicht in Powershell.
Mike G
1

Ich kann den Thread von jscott nicht kommentieren, aber damit Ihr Befehl in Powershell ordnungsgemäß ausgeführt wird, müssen Sie den gesamten Parameter in Anführungszeichen setzen:

    C:\> icacls .\foo /grant:r "Users:F"

Dies funktioniert für Gruppennamen mit Leerzeichen sowie für Befehle, die Berechtigungen erben.

    C:\> icacls .\foo /grant:r "Remote Desktop Users:(OI)(CI)(F)"

Wenden Sie im Zweifelsfall immer Anführungszeichen um den vollständigen Parameter an. Hoffe das hilft! :) :)

Josh Vance
quelle