Question
Changer le Owner sur une arbo de fichiers (Résolu)
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 15 ans 8 mois #912
par balek
Réponse de balek sur le sujet Re:Modification repertoire
Merci encore, mais j'ai beau tester ca, je ne modifie pas le proprietaire.
Pour le nom d'utilisateur, cela peut etre un user local ou sur un domaine, sans distinction ?
Encore merci pour votre aide.
Pour le nom d'utilisateur, cela peut etre un user local ou sur un domaine, sans distinction ?
Encore merci pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 8 mois #913
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Réponse de Arnaud Petitjean sur le sujet Re:Modification repertoire
Bonjour Balek,
Il manque juste une petite chose que Robin a oublié
. Il faut au préalable récupérer l'ACL dans une variable et la modifier avant de la passer à la méthode SetAccessControl().
[code:1]
[System.Security.Principal.NTAccount]$owner=\"MonDomaine\MonUtilisateur\"
$acl = (Get-item <tonfichier>«»).GetAccessControl()
$acl.SetOwner($owner)
(Get-item <tonfichier>«»).SetAccessControl($acl)
[/code:1]
Sinon, il y a une autre façon de procéder qui est peut-être plus simple. Si tu as un répertoire quelque part qui a les bons ACL, tu peux les dupliquer. Je m'explique : tu fais un Get-ACL sur le répertoire source, puis un Set-ACL sur le répertoire de destination.
Exemple:
[code:1]
$ACLS = Get-ACL c:\temp
Set-ACL -path RepertoireDest -AclObject $ACLS
[/code:1]
RECTIFICATIF : après un test rapide, je n'ai pas l'impression que Set-ACL fonctionne avec les répertoires. Par contre, cela marche très bien avec des fichiers.
Tu peux consulter l'aide de Set-ACL ici .
A bientôt,
Arnaud<br><br>Message édité par: Arnaud, à: 12/09/07 13:41
Il manque juste une petite chose que Robin a oublié

[code:1]
[System.Security.Principal.NTAccount]$owner=\"MonDomaine\MonUtilisateur\"
$acl = (Get-item <tonfichier>«»).GetAccessControl()
$acl.SetOwner($owner)
(Get-item <tonfichier>«»).SetAccessControl($acl)
[/code:1]
Sinon, il y a une autre façon de procéder qui est peut-être plus simple. Si tu as un répertoire quelque part qui a les bons ACL, tu peux les dupliquer. Je m'explique : tu fais un Get-ACL sur le répertoire source, puis un Set-ACL sur le répertoire de destination.
Exemple:
[code:1]
$ACLS = Get-ACL c:\temp
Set-ACL -path RepertoireDest -AclObject $ACLS
[/code:1]
RECTIFICATIF : après un test rapide, je n'ai pas l'impression que Set-ACL fonctionne avec les répertoires. Par contre, cela marche très bien avec des fichiers.
Tu peux consulter l'aide de Set-ACL ici .
A bientôt,
Arnaud<br><br>Message édité par: Arnaud, à: 12/09/07 13:41
MVP PowerShell et créateur de ce magnifique forum

Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Connexion ou Créer un compte pour participer à la conversation.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 15 ans 8 mois #917
par balek
Réponse de balek sur le sujet Re:Modification repertoire
Merci , je vais tester tous cela.
En fait, j'avais deja tester la seconde possibilité qui effectivement marche bien. ( Merci pour l'aide en francais tres bien fourni)
Je teste la premiere tres vite et vous donne mes impressions.
encore merci.
En fait, j'avais deja tester la seconde possibilité qui effectivement marche bien. ( Merci pour l'aide en francais tres bien fourni)
Je teste la premiere tres vite et vous donne mes impressions.
encore merci.
Connexion ou Créer un compte pour participer à la conversation.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 15 ans 8 mois #927
par balek
Réponse de balek sur le sujet Re:Modification repertoire
Salut,
Ca marche tres bien, et meme avec les repertoires
[code:1][System.Security.Principal.NTAccount]$owner=\"toto\test\"
$acl = (Get-item \"d:\temp\\"«»).GetAccessControl()
$acl.SetOwner($owner)
(Get-item \"d:\temp\\"«»).SetAccessControl($acl)
[/code:1]
Par contre, ca modifie le proprietaire que pour le repertoire [code:1]d:\temp[/code:1], et ce n'est pas recursif.
J'ai tenté en mettant [code:1]d:\temp\*[/code:1]mais non, ca aurait été trop facile.
Je cherche encore.
A tres vite ....
<br><br>Message édité par: balek, à: 13/09/07 13:59
Ca marche tres bien, et meme avec les repertoires
[code:1][System.Security.Principal.NTAccount]$owner=\"toto\test\"
$acl = (Get-item \"d:\temp\\"«»).GetAccessControl()
$acl.SetOwner($owner)
(Get-item \"d:\temp\\"«»).SetAccessControl($acl)
[/code:1]
Par contre, ca modifie le proprietaire que pour le repertoire [code:1]d:\temp[/code:1], et ce n'est pas recursif.
J'ai tenté en mettant [code:1]d:\temp\*[/code:1]mais non, ca aurait été trop facile.
Je cherche encore.
A tres vite ....

Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 8 mois #933
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Modification repertoire
La syntaxe que tu utilises, (get-item \"d:\temp\\").getaccesscontrol(), ne permet de traiter qu'un objet, pas une suite d'objets. Si le get-item récupère plusieurs objets, ce que tu manipules entre parenthèses devient une liste, et la liste en tant que telle n'a pas de méthode GetAccessControl().
Il faut donc créer une boucle pour pouvoir traiter chaque fichier un à un. Je n'ai pas testé, mais on doit pouvoir faire qq chose comme ça:
[code:1]
get-item d:\temp\* | foreach {
$acl = $_.GetAccessControl()
$acl.SetOwner($owner)
$_.SetAccessControl($acl)
}[/code:1]
Janel
Il faut donc créer une boucle pour pouvoir traiter chaque fichier un à un. Je n'ai pas testé, mais on doit pouvoir faire qq chose comme ça:
[code:1]
get-item d:\temp\* | foreach {
$acl = $_.GetAccessControl()
$acl.SetOwner($owner)
$_.SetAccessControl($acl)
}[/code:1]
Janel
Connexion ou Créer un compte pour participer à la conversation.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 15 ans 8 mois #935
par balek
Réponse de balek sur le sujet Re:Modification repertoire
Effectivement ca marche bien ca aussi.
Mais le repertoire \"d:\temp\" du depart, lui il ne change pas de proprietaire,
Par contre les proprietaires des repertoires et fichiers enfants sont qd à eux bien modifiés.
Merci.
@+
Mais le repertoire \"d:\temp\" du depart, lui il ne change pas de proprietaire,
Par contre les proprietaires des repertoires et fichiers enfants sont qd à eux bien modifiés.
Merci.
@+
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Changer le Owner sur une arbo de fichiers (Résolu)