Contexte
Dis que j'ai cette commande
icacls C:\FullyAccessibleFolder /grant Users:(OI)(CI)F
Cela fonctionne bien dans les versions anglaises de Windows, mais ne semble pas fonctionner dans les versions françaises, ce qui donne l'erreur suivante, probablement en raison de Users
sa différence en français. Everyone
est traduit comme Tout le monde
dans Windows, ce n'est donc pas une solution non plus.
Users: Le mappage entre les noms de compte et les ID de sécurité n'a pas été effectué.
Google se traduit par
Users: The mapping between account names and security IDs was not performed.
Question
Existe-t-il une commande que je peux utiliser pour définir un dossier et récursivement tout son contenu pour avoir des autorisations complètes pour tous les utilisateurs d'une manière qui fonctionnerait dans différentes versions linguistiques de Windows?
Contenu provenant du Web
Cette page avec un problème largement similaire explique comment Everyone
devient Jeder
en allemand et Tout le monde
en français.
icacls C:\FullyAccessibleFolder /grant S-1-5-32-545:(OI)(CI)F
fonctionne partout.icacls C:\folder /grant *S-1-5-32-545:(OI)(CI)F
, tu as omis l'astérisque.Réponses:
Ne fonctionne pas dans les versions françaises, probablement en raison de
Users
sa différenceVous avez trois options, détaillées ci-dessous:
Utilisez le portail de langue pour obtenir le nom traduit
Récupérer le nom localisé du
Users
SIDUtilisez le
Users
SID avecicacls
Option 1: utiliser le portail linguistique (ressource canonique pour la terminologie Microsoft)
Une recherche d' utilisateurs renvoie:
Cela suggère que la commande suivante peut fonctionner:
Option 2: récupérer le nom localisé du
Users
SID (S-1-5-32-545
)Source identificateurs de sécurité bien connues dans les systèmes d'exploitation de Windows
Pour récupérer le
Users
nom du groupe localisé :Source Cacls, Windows 7, autorisations complètes, noms locaux par wmz
Option 3: utilisez le
Users
SID avecicacls
Utilisez la commande suivante:
Commentaire de la source par Harry Johnston
la source
xcacls
semble être un script que vous pouvez télécharger. Il n'y a pas besoin;icacls
est intégré à Windows et peut faire le même travail.Users
... J'ai clarifié la réponse car nous n'avons pas besoin de laxacls
partie de la solution citée.icacls
directe avec crédit pour vous.Vous devez spécifier le groupe AD non pas par son nom, mais par le numéro SID.
Pour les groupes standard tels que "EveryOne", "Domain Users", etc., il existe des numéros SID normalisés, qui se trouvent sur la page MSDN. Identificateurs de sécurité (SID) connus .
Voici les identifiants relatifs les plus courants.
La structure d'un SID est décrite comme suit:
Fonctionnement des identificateurs de sécurité
la source
S-1-5-32-544
, puis modifiez l'ACL pour accorder toutes les autorisations au groupe pour le fichier ou le dossier en question544
est Administrateurs,545
c'est Utilisateurs.Si vous aimez les scripts PowerShell mais avez du mal à vous souvenir des numéros des SID:
Je sais que cela ressemble à une tonne de frappe, mais ces longs identificateurs sont complétés par des tabulations:
System.Security.Principal.SecurityIdentifier
desecurityi
System.Security.Principal.WellKnownSidType
dewellknownsi
System.Security.AccessControl.FileSystemAccessRule
defilesystem
Toutes ces chaînes sont des identificateurs .NET, donc elles ne sont pas localisées.
Si vous souhaitez
Everyone
plutôt le SID, utilisezWorldSid
à la place deBuiltinUsersSid
. Pour obtenir la liste de toutes lesWellKnownSidType
options, voir MSDN ou exécutez cette commande:la source
group names
?$sid =
ligne et remplacer$sid
dans la$rule =
ligne avec une chaîne identifiant le groupe.