Impossibile assegnare le autorizzazioni di gruppo con ICACLS su Windows Server 2012


9

Non riesco a ottenere icacls per accettare il mio gruppo per l'aggiunta di autorizzazioni. Sto usando una shell di potenza elevata con il seguente comando:

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

Ottengo il seguente errore:

Invalid parameter "Group Foo"

Ho provato a usare anche il SUID, ma anche questo ha esito negativo. Ho anche provato 'Domain \ Group Foo'

Ho un sacco di file che sto cercando di consentire a un gruppo di utilizzare. Qual è il modo corretto di aggiungere autorizzazioni di massa in Windows Server 2012?

-- MODIFICARE --

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

Risposte:


10

Usa virgolette doppie invece di virgolette singole:

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

Mi mancava che stavi usando Powershell, no cmd. Powershell ha una certa stranezza nel mescolare comandi esterni e quotazioni. Ecco un paio di esempi usando Powershell.

PS v2: per passare le virgolette su icaclsdevi sfuggirle con un cursore. Nota anche la parentesi attorno alla "F" deve essere salvata.

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

PS v3: la versione 3 offre una nuova sequenza di escape --%(trattino, trattino, percentuale) che sfugge al resto della linea. Ciò semplifica anche i parametri esterni complessi.

PS C:\>icacls --% "C:/foo" /grant:r "Users":F

Vedi la mia modifica sopra. Neanche questo ha funzionato. Nota che sto ricevendo errori "Parametro non valido" e non "Nessuna mappatura tra nomi account"
user319862

Ho appena provato di nuovo usando il prompt dei comandi invece di Power Shell e ha funzionato. Non so quale sia il problema, ma grazie per la sintassi corretta.
user319862,

Siamo spiacenti, ho completamente ignorato che stavi usando PS. Aggiornato per includere esempi di PS 2/3.
jscott,

Per le persone che si lamentano che non funziona, devi usare il comando nel Prompt dei comandi. Il comando non funziona in PowerShell.
Mike G,

1

Non mi lascia commentare il thread di jscott ma per far funzionare correttamente il tuo comando in Powershell, dovrai aggiungere delle virgolette sull'intero parametro, come tale:

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

Funzionerà con nomi di gruppi che contengono spazi, oltre a comandi che includono autorizzazioni di ereditarietà.

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

In caso di dubbi, applicare sempre le virgolette attorno al parametro completo. Spero che sia di aiuto! :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.