Flash info

"La connaissance ce n’est point la possession de la vérité, mais d’un langage cohérent."

Antoine de Saint Exupéry (1900-1944)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
<< Début < Précédente 1 2 Suivante > Fin >>
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Modification d'ACLs - 14/03/18 13:54 Bonjour,

Voici mon problème : Je dois créer un script qui permet de modifier les droit d'accès sur un groupe d'utilisateur de l'AD ("Tout le monde" dans mon cas) et je voudrais simplement leur enlever les droits de : Controle total, Modification, et d'Écriture. (Uniquement sur le répertoire, sans héritage sur les sous dossiers)

Pour l'instant j'ai simplement réussis à faire ceci :
Code:

  $acl get-acl D:\test $ace = new-object Security.AccessControl.FileSystemAccessRule ("ISL\ginnsz""FullControl""Deny") $ace = new-object Security.AccessControl.FileSystemAccessRule ("ISL\ginnsz""Modify""Deny") $ace = new-object Security.AccessControl.FileSystemAccessRule ("ISL\ginnsz""Write""Deny") $acl.AddAccessRule($ace) set-acl D:\test



Comme je sais que mon script n'est pas du tout viable pour modifier les droits d'un groupe d'utilisateur AD je viens ici car je n'arrive plus à comprendre les centaines de pages d'info de MSDN.

Donc si jamais quelqu'un peut m'aider, j'en serais reconnaissant

Message édité par: Arnaud, à: 16/03/18 13:56
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Script pour répertoire AD - 14/03/18 16:02 salut Sora

peut tu nous dire sur quel version de PS ou de windows tu travail
on pourra sens doute utilisé une version plus récente de commande des ACL

execution de la commande Get-NTFSAccess peu suffire a confirmé la presence de ces nouvelle commande

Message édité par: 6ratgus, à: 14/03/18 17:02
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 14/03/18 16:30 Bonjour,

Je travaille sous windows 7, quant à ma version de powershell je ne sais pas du tout... J'ai lu jusqu'à atteindre les ActiveDirectoryRights mais à partir de là je suis totalement perdu
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Script pour répertoire AD - 14/03/18 17:19 affiche cette variable $PSVersionTable pour avoir la PSVersion

Code:

 xxx>$PSVersionTable Name                           Value                                                                                                                                                            ----                           -----                                                                                                                                                            PSVersion                      5.1.16299.251                                                                                                                                                    PSEdition                      Desktop                                                                                                                                                          PSCompatibleVersions           {1.02.03.04.0...}                                                                                                                                          BuildVersion                   10.0.16299.251                                                                                                                                                   CLRVersion                     4.0.30319.42000                                                                                                                                                  WSManStackVersion              3.0                                                                                                                                                              PSRemotingProtocolVersion      2.3                                                                                                                                                              SerializationVersion           1.1.0.1     



sinon la commande Get-NTFSAccess s'execute normalement ou tu a une erreur ?
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 15/03/18 08:46 Bonjour,

Voici la version qui s'affiche
Code:

 Name                           Value ----                           ----- CLRVersion                     2.0.50727.8762 BuildVersion                   6.1.7601.17514 PSVersion                      2.0 WSManStackVersion              2.0 PSCompatibleVersions           {1.02.0} SerializationVersion           1.1.0.1 PSRemotingProtocolVersion      2.1



Et oui j'obtient un message d'erreur en faisant Get-NTFSAccess
Code:

 Le terme « Get-NTFSAccess » n'est pas reconnu comme nom d'applet de commandefonctionfichier de script ou programme exécutableVérifiez l'orthographe du nom, ou si un chemin d'accès existevérifiez que le chemin d'accès est correct e t réessayez. Au niveau de ligne : 1 Caractère : 15 + Get-NTFSAccess <<<<  T:\     + CategoryInfo          : ObjectNotFound: (Get-NTFSAccess:String) [], CommandNotFoundException     + FullyQualifiedErrorId : CommandNotFoundException

  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1236
graphgraph
Karma: 43  
Re:Script pour répertoire AD - 15/03/18 14:59 Bonjour Sora,

Tout d'abord, soit le/la bienvenu(e) dans le forum !

D'après ce que je constate, tu travailles avec PowerShell 2.0, soit la version installée de base avec Windows 7.
Je ne peut que t'encourager à passer à une version supérieure, en version 5.1 si tu peux (télécharge le WMF 5.1).

Ensuite, bien que tu puisses modifier les ACLs en manipulant directement les objets Security.AccessControl.FileSystemAccessRule, cette voie est relativement compliquée. Je ne pourrais que t'encourager à utiliser le module NTFSSecurity.

Si tu as PowerShell 5.1 tu peux directement l'installer à partir de la PowerShell Gallery, comme ci-après :
Code:

  Install-Module -Name NTFSSecurity



Arnaud
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 15/03/18 15:59 Oki, WMF 5.1 a bien été installé ainsi que le module NTFSSecurity.

Une fois ceci fait comment procéder ? Car plus je lis de la doc MDSN et plus je me perd dans les explications..

Merci pour votre aide !
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1236
graphgraph
Karma: 43  
Re:Script pour répertoire AD - 15/03/18 16:10 Sora,

L'aide se passe ici sur la page GitHub du projet NTFS Security


Ensuite, c'est comme d'habitude :
Code:

  # Obtenir toutes les commandes du module Get-Command -Module NTFSSecurity # Obtenir de l'aide sur une commande Get-Help maCommande -detailed



Arnaud
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 15/03/18 16:30 Ok, merci pour l'info !

De ce que j'ai compris pour pouvoir modifier les ACL qu'il me faut je dois utiliser ceci
Code:

  Add-NTFSAccess [-Path] <string[]> [-Account] <IdentityReference2[]> [-AccessRights]FullControl Modify Write []> [-AccessRights {Deny}] [-AppliesTo {ThisFolderOnly}]



Je pense qu'il doit me manquer encore quelques choses mais je devrait vite le savoir après quelques tests
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1236
graphgraph
Karma: 43  
Re:Script pour répertoire AD - 16/03/18 08:34 Bonjour Sora,

Tout dépend de ce que tu veux faire... Le module respecte les normes en usage dans PowerShell, à savoir que les commandes dont le verbe est :

  • Get : récupération d'un ou plusieurs objet(s)

  • Add : ajout de données à un objet existant

  • Set : modification d'un objet existant

  • New : création d'un objet

  • Remove : suppression d'un objet



Comme dans ton cas il s'agit d'une modification d'ACL existante, j'aurai davantage pensé à une commande de type "Set-xxx".

A toi de voir...

Arnaud

Message édité par: Arnaud, à: 16/03/18 09:35
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 16/03/18 08:39 Effectivement, j'avais oublié la fonction Set, elle me semble être adéquate à ce que je veux faire. La seule question qui me vient à l'esprit reste, ne faut-il pas d'abord Get avant de Set ?
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1236
graphgraph
Karma: 43  
Re:Script pour répertoire AD - 16/03/18 08:45 Oui souvent mais ce n'est pas obligé.

D'une manière générale, on commence par récupérer l'objet sur lequel on veut agir (avec une commande de type Get), puis on passe cet objet à la commande Add, New, Remove, etc...

Exemple :
Code:

  # Supprime tous les fichiers et dossiers de C:\temp Get-Childitem C:\temp -recurse Remove-Item -force



Arnaud
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 16/03/18 09:02 Donc si je comprend bien il me faut
Code:

 Get-NTFSAccess T:Set-NTFSAccess [-Path] <string[]> [-Account] <IdentityReference2[]> [-AccessRights]FullControl Modify Write []> [-AccessRights {Deny}] [-AppliesTo {ThisFolderOnly}]


Par contre, je ne vois pas trop où je dois placer le nom de mon groupe AD "Tout le monde", peut-être dans le <IdentityReference2[]> ?

Message édité par: Sora, à: 16/03/18 10:12
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1236
graphgraph
Karma: 43  
Re:Script pour répertoire AD - 16/03/18 09:57 Oui tu comprends bien

Eh bien c'est pareil pour la propriété Account qui elle attend un objet de type "IdentityReference2". Il faut que tu récupères un objet de ce type avec une commande de type Get-xxx (dans ton cas ce sera le groupe AD que tu souhaites ajouter à l'ACL). Puis tu passes cet objet à la propriété Account.

As-tu lu la doc que je t'ai mis en lien ? Regarde au moins les exemples...

Arnaud
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 16/03/18 10:13 J'y ai jeté un coup d'oeil, mais je ne te cache pas que je suis pas très doué pour trouver un exemple dans tout ça
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1236
graphgraph
Karma: 43  
Re:Script pour répertoire AD - 16/03/18 10:26 C'est bizarre car moi je suis tombé directement sur cet exemple qui me semble tout à fait adapté à ton besoin... :

Code:

  Add-NTFSAccess -Path C:\Data ` -Account 'NT AUTHORITY\Authenticated Users' ` -AccessRights Read Add-NTFSAccess -Path C:\Data ` -Account 'BUILTIN\Administrators', 'raandree9\Editors' ` -AccessRights FullControl 



C'est dans la partie "Granting Access".
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 16/03/18 10:41 Oh damn ! Super, je termine ce que je fais et je vais dévorer des yeux cet exemple, merci !
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 16/03/18 13:51 Du coup une autre question me vient à l'esprit en lisant cela, est-il possible de placer plusieurs définition d'autorisation plutôt que de devoir toutes les refaire une par une ?

Par exemple
Code:

 Add-NTFSAccess -Path C:\Data ` -Account 'BUILTIN\Administrators', 'raandree9\Editors' ` -AccessRights FullControlModifyRead 


Plutôt que
Code:

 Add-NTFSAccess -Path C:\Data ` -Account 'BUILTIN\Administrators', 'raandree9\Editors' ` -AccessRights FullControl -AccessRights Modify -AccessRights Read

  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Script pour répertoire AD - 16/03/18 15:10 salut Sora et Arnaud

Merci Arnaud d'avoir pris le relais !
des difficulté professionnel mon occupé c'est deux dernier jour, de gros problème de réseau !!

-il possible de placer plusieurs définition d'autorisation plutôt que de devoir toutes les refaire une par une ?
pour répondre à ta question Sora, tu peut utilisé les definitions d'autorisations ci-dessous, certaine regroupe plusieurs autorisations. le detail des autorisations ici.

ListDirectory
ReadData
WriteData
CreateFiles
CreateDirectories
AppendData
ReadExtendedAttributes
WriteExtendedAttributes
Traverse
ExecuteFile
DeleteSubdirectoriesAndFiles
ReadAttributes
WriteAttributes
Write
Delete
ReadPermissions
Read
ReadAndExecute
Modify
ChangePermissions
TakeOwnership
Synchronize
FullControl
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 16/03/18 15:34 Je vois que ça rejoins là où je m'étais arrêté, merci pour le complément 6ratgus, et merci Arnaud pour les explications !
J'enverrais sûrement un message lundi une fois mes test fait sur le domaine
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 20/03/18 09:59 Bonjour !

Je viens de faire des tests, et comme je l'avais prévue, ça ne fonctionne pas, je vous met les détails de mon test
Code:

 PS V:\thirionadd-ntfsaccess V:\thirion\test -ISL\ginnsz -ISL\Tout le monde -AccessRights FullControlModifyWrite De ny Add-NTFSAccess A parameter cannot be found that matches parameter name 'ISL\ginnsz'. At line:1 char:32 add-ntfsaccess V:\thirion\test -ISL\ginnsz -ISL\Tout le monde -Access ... +                                ~~~~~~~~~~~     + CategoryInfo          InvalidArgument: (:) [Add-NTFSAccess], ParameterBindingException


Là le problème est que je n'arrive pas à identifier chaque valeur à entrer pour pouvoir le faire fonctionner, je ne sais même pas si ma syntaxe est bonne
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Script pour répertoire AD - 20/03/18 10:43 salut sora

ta commande est incorrect !!

le tiret devant ISL n'est pas bon
quand il y a des espace dans le nom d'un utilisateur il faut mettre le nom complet entre guillemet
le deny n'est pas une bonne idée pour enlever des droits.

pour enlever des droits sur un utilisateur add-NTFSAccess n'est pas prévu pour ca

il faut effacer les permissions avec remove-NTFSAccess

soit :
Code:

 remove-NTFSAccess –Path "V:\thirion\test" -Account "ISL\ginnsz""Tout le monde" -AccessRights TakeOwnershipChangePermissionsWriteDeleteSubdirectoriesAndFilesDelete



il ne faut retiré le fullcontrol, ça correspond a enlever tous les droits et donc l'utilisateur
il faut donc enlever chaque droit spécifique sauf ceux que l'on veux garder !!
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 20/03/18 10:56 Merci pour cette correction, mais du coup, je voudrais bien enlevé le droit de FullControle, de modification, et d'écriture de mon groupe "Tout le monde" sur tout les dossier se trouvant dans mon "V:thiriontest"

Désolé, je dois sûrement passer pour un vrai noob
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Script pour répertoire AD - 20/03/18 13:21 Désolé, je dois sûrement passer pour un vrai noob non les permissions sur les dossiers sont assez complexe a mettre en place en script

pour l'utilisateur "Tout le monde" je suppose qu'il est hérité du dossier parent !?
  | | L'administrateur a désactivé l'accés public en écriture.
Sora
Utilisateur

PowerShelleur Débutant
Messages: 17
graphgraph
Karma: 0  
Re:Script pour répertoire AD - 20/03/18 14:24 Du dossier parent ? Ça y est je suis de nouveau perdu, je ne sais pas du tout ce que c'est, tout ce que je sais c'est qu'il s'agit d'un groupe AD à qui je dois enlever ces droits pour lire les dossier présent dans mon répertoire T:
  | | L'administrateur a désactivé l'accés public en écriture.
<< Début < Précédente 1 2 Suivante > Fin >>
© 2018 PowerShell-Scripting.com