Question
Droits refusé
- Vanni
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 7 ans 5 mois #22567
par Vanni
Droits refusé a été créé par Vanni
Bonjour à tout le monde,
Depuis quelques temps, j'essaie de créer un script me permettant de supprimer des dossiers de sessions itinérantes qu'y sont stockée sur un serveur.
Les problèmes:
-L'utilisateur administrateur n'a aucun accès au dossier de l'utilisateur
-Dans mon programme, quand je veux récupérer les droits (get-acl), j'ai une erreur comme quoi, je n'ai pas les droits.
-Forcément, quand je fais un set-acl, je suis toujours refusé car j'ai un manque de droits.
Mon scripts me permet (enfin, si une personne à une idée de comment me mettre propriétaire du dossier) de me mettre propriétaire de tous les sous dossier qu'il y a dans le répertoire qu'il y a dans la variable \"$Data.RepertoireSessionLocalPerso\".
Enfin, ma dernière ligne me permet de supprimer le dossier parent une fois que j'aurai les droits sur tout.
[code:1]
$users = get-childitem $Data.RepertoireSessionLocalPerso
Foreach ($user in $users)
{
$acl = Get-Acl -Path $user.FullName
$acl.SetOwner([System.Security.Principal.NTAccount] \"ADMIN\")
set-acl - $user.FullName $acl
$subFolders = Get-ChildItem $user.FullName -Directory -Recurse -force
Foreach ($subFolder in $subFolders)
{
$acl = Get-Acl $subFolder.FullName
$acl.SetOwner([System.Security.Principal.NTAccount] \"ADMIN\")
set-acl $subFolder.FullName $acl
}
}
Remove-Item $Data.RepertoireSessionLocalPerso -Recurse -Force
[/code:1]
Si une personne à une idée de comment me mettre propriétaire alors que je n'ai pas les moindres droits sur le dossier, je suis preneur.
Enfin, je peux quand même me mettre propriétaire MAIS avec l'interface graphique, donc:
-Clic droits sur le dossier => propriété
-Onglet sécurité => avancé
-Modifier le propriétaire et remplacer toutes les entrées parents.
Mon but étant de le faire via un scripts car j'ai plus d'une centaine de dossier à traiter.
D'avance merci à vous,<br><br>Message édité par: Vannidavid, à: 31/10/16 12:24
Depuis quelques temps, j'essaie de créer un script me permettant de supprimer des dossiers de sessions itinérantes qu'y sont stockée sur un serveur.
Les problèmes:
-L'utilisateur administrateur n'a aucun accès au dossier de l'utilisateur
-Dans mon programme, quand je veux récupérer les droits (get-acl), j'ai une erreur comme quoi, je n'ai pas les droits.
-Forcément, quand je fais un set-acl, je suis toujours refusé car j'ai un manque de droits.
Mon scripts me permet (enfin, si une personne à une idée de comment me mettre propriétaire du dossier) de me mettre propriétaire de tous les sous dossier qu'il y a dans le répertoire qu'il y a dans la variable \"$Data.RepertoireSessionLocalPerso\".
Enfin, ma dernière ligne me permet de supprimer le dossier parent une fois que j'aurai les droits sur tout.
[code:1]
$users = get-childitem $Data.RepertoireSessionLocalPerso
Foreach ($user in $users)
{
$acl = Get-Acl -Path $user.FullName
$acl.SetOwner([System.Security.Principal.NTAccount] \"ADMIN\")
set-acl - $user.FullName $acl
$subFolders = Get-ChildItem $user.FullName -Directory -Recurse -force
Foreach ($subFolder in $subFolders)
{
$acl = Get-Acl $subFolder.FullName
$acl.SetOwner([System.Security.Principal.NTAccount] \"ADMIN\")
set-acl $subFolder.FullName $acl
}
}
Remove-Item $Data.RepertoireSessionLocalPerso -Recurse -Force
[/code:1]
Si une personne à une idée de comment me mettre propriétaire alors que je n'ai pas les moindres droits sur le dossier, je suis preneur.
Enfin, je peux quand même me mettre propriétaire MAIS avec l'interface graphique, donc:
-Clic droits sur le dossier => propriété
-Onglet sécurité => avancé
-Modifier le propriétaire et remplacer toutes les entrées parents.
Mon but étant de le faire via un scripts car j'ai plus d'une centaine de dossier à traiter.
D'avance merci à vous,<br><br>Message édité par: Vannidavid, à: 31/10/16 12:24
Connexion ou Créer un compte pour participer à la conversation.
- Vanni
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 7 ans 5 mois #22568
par Vanni
Réponse de Vanni sur le sujet Re:Droits refusé
<br><br>Message édité par: Vannidavid, à: 31/10/16 12:10
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
il y a 7 ans 5 mois #22570
par Philippe
Réponse de Philippe sur le sujet Re:Droits refusé
Salut,
Je me suis jamais penché sur le problème mais avec une petite recherche avec les mots \"powershell ownership folder\", on trouve rapidement un blog qui détaille bien par quoi tu passe.
learn-powershell.net/2014/06/24/changing...er-using-powershell/
Il y a même un lien sur la gallery microsoft
gallery.technet.microsoft.com/scriptcenter/Set-Owner-ff4db177
Fait nous un retour d'expérience
A+<br><br>Message édité par: Mortasgus, à: 2/11/16 04:28
Je me suis jamais penché sur le problème mais avec une petite recherche avec les mots \"powershell ownership folder\", on trouve rapidement un blog qui détaille bien par quoi tu passe.
learn-powershell.net/2014/06/24/changing...er-using-powershell/
Il y a même un lien sur la gallery microsoft
gallery.technet.microsoft.com/scriptcenter/Set-Owner-ff4db177
Fait nous un retour d'expérience
A+<br><br>Message édité par: Mortasgus, à: 2/11/16 04:28
Connexion ou Créer un compte pour participer à la conversation.
- Vanni
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 7 ans 5 mois #22572
par Vanni
Réponse de Vanni sur le sujet Re:Droits refusé
Je vous remercie pour m'avoir guidé sur le bon chemin!!
Je me suis basé sur la fonction takeown qui m'avait l'air plus sympa à utiliser.
J'arrive enfin à pouvoir supprimer une session itinérante sans le moindre soucis.
Il faut s'avoir que je me sert d'un fichier csv bien entendu car faire un scripts pour juste un dossier n'est pas très utile.
Je vous laisse mon code commenté si jamais une personne en a besoin.
[code:1]
#Fixer le répertoire par défaut
$repertoiretest = 'C:\Réseau\Sessions$\5 éducateurs & directeur\'
$Data = 'Christian2.V6'
#Se mettre propriétaire du dossier (utilisateur courant)
takeown /F $repertoiretest$Data /R /D O
#Fixer les droits de l'utilisateur serv en full control au dossier, tous les sous répertoires et les fichiers
#(Commes je travail sur un répertoire de session itinérante, je suis obligé de passer par cette manipulation.
#Si ça n'avais pas été le cas, j'aurai pu me passer de ces étapes.)
$acl = Get-Acl -Path $repertoiretest$Data
$permission = 'serv@..........', \"FullControl\", ”ContainerInherit,ObjectInherit”,”None”,”Allow”
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
$acl | Set-Acl $repertoiretest$Data
#J'applique à tous les objets enfants les mêmes droits qu'au dossier principal
icacls $repertoiretest$Data /inheritance:e /t /c
#Maintenant que j'ai enfin tous les droits, je peux supprimer le répertoire
Remove-Item $repertoiretest$Data -Recurse -Force[/code:1]
Si vous avez des remarques à me faire à propos du code, je suis preneur.
David Vanni<br><br>Message édité par: Vannidavid, à: 2/11/16 12:07
Je me suis basé sur la fonction takeown qui m'avait l'air plus sympa à utiliser.
J'arrive enfin à pouvoir supprimer une session itinérante sans le moindre soucis.
Il faut s'avoir que je me sert d'un fichier csv bien entendu car faire un scripts pour juste un dossier n'est pas très utile.
Je vous laisse mon code commenté si jamais une personne en a besoin.
[code:1]
#Fixer le répertoire par défaut
$repertoiretest = 'C:\Réseau\Sessions$\5 éducateurs & directeur\'
$Data = 'Christian2.V6'
#Se mettre propriétaire du dossier (utilisateur courant)
takeown /F $repertoiretest$Data /R /D O
#Fixer les droits de l'utilisateur serv en full control au dossier, tous les sous répertoires et les fichiers
#(Commes je travail sur un répertoire de session itinérante, je suis obligé de passer par cette manipulation.
#Si ça n'avais pas été le cas, j'aurai pu me passer de ces étapes.)
$acl = Get-Acl -Path $repertoiretest$Data
$permission = 'serv@..........', \"FullControl\", ”ContainerInherit,ObjectInherit”,”None”,”Allow”
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
$acl | Set-Acl $repertoiretest$Data
#J'applique à tous les objets enfants les mêmes droits qu'au dossier principal
icacls $repertoiretest$Data /inheritance:e /t /c
#Maintenant que j'ai enfin tous les droits, je peux supprimer le répertoire
Remove-Item $repertoiretest$Data -Recurse -Force[/code:1]
Si vous avez des remarques à me faire à propos du code, je suis preneur.
David Vanni<br><br>Message édité par: Vannidavid, à: 2/11/16 12:07
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.104 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Droits refusé