Question
[Résolu] Droit NTFS et interdiction
- guigui76
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 5 ans 1 mois #28561
par guigui76
[Résolu] Droit NTFS et interdiction a été créé par guigui76
Bonjour Mesdames et Messieurs,
pour mon premier post sur le forum et aussi mes premières lignes d'instruction en Powershell, je désire gérer des droits NTFS.
j'arrive à créer un dossier \"user\" et dans celui-ci un dossier \"personnel_prive\".
Je ne sais pas comment rendre la suppression impossible du dossier \"personnel_prive\" tout en gardant la possibilité
à l'utilisateur de supprimer des données contenu dans les dossiers
et mon ps1
j'utilise pour la gestion des droits NTFS:
Add-NTFSAccess –Path \"$PersonnelPathRoot\$User\Personnel_prive\" –Account \"$User\" –AccessRights FullControl
mais je n'ai rien trouvé empêcher la suppresion du dossier.
je vous remercie et vous souhaite une agréable journée
Guigui
Message édité par: guigui, à: 24/03/19 17:04<br><br>Message édité par: Arnaud, à: 27/03/19 10:18
pour mon premier post sur le forum et aussi mes premières lignes d'instruction en Powershell, je désire gérer des droits NTFS.
j'arrive à créer un dossier \"user\" et dans celui-ci un dossier \"personnel_prive\".
Je ne sais pas comment rendre la suppression impossible du dossier \"personnel_prive\" tout en gardant la possibilité
à l'utilisateur de supprimer des données contenu dans les dossiers
et mon ps1
La pièce jointe share_dossier-12037e8f27645ca59bec3d4c7e9534d1.ps1 est absente ou indisponible
j'utilise pour la gestion des droits NTFS:
Add-NTFSAccess –Path \"$PersonnelPathRoot\$User\Personnel_prive\" –Account \"$User\" –AccessRights FullControl
mais je n'ai rien trouvé empêcher la suppresion du dossier.
je vous remercie et vous souhaite une agréable journée
Guigui
Message édité par: guigui, à: 24/03/19 17:04<br><br>Message édité par: Arnaud, à: 27/03/19 10:18
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 5 ans 1 mois #28568
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:droit ntfs et interdiction
Bonjour Guigui,
Sois le bienvenu dans le forum !
Si tu ne souhaites pas que l'utilisateur soit en mesure de supprimer le dossier, il ne faut pas lui donner la permission \"Full Control\" mais simplement \"Modify\".
Arnaud
Sois le bienvenu dans le forum !
...mais je n'ai rien trouvé empêcher la suppresion du dossier.
Si tu ne souhaites pas que l'utilisateur soit en mesure de supprimer le dossier, il ne faut pas lui donner la permission \"Full Control\" mais simplement \"Modify\".
Arnaud
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 ?
Connexion ou Créer un compte pour participer à la conversation.
- guigui76
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 5 ans 4 semaines #28573
par guigui76
Réponse de guigui76 sur le sujet Re:droit ntfs et interdiction
Hello, j'ai trouvé une solution :
[code:1]
# Ajout des autorisations NTFS
Add-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\Personnel_prive\" –Account \"$Nom_profil\" -AccessType Deny -AppliesTo ThisFolderOnly -AccessRights Delete
[/code:1]
je refus la suppression que pour le dossier et non pour le contenue.
Je vous remercie
[code:1]Install-Module NTFSSecurity
#################################################
# 2013-04-07 - TGI
# Downloaded on blog.akril.net
# www.tutos.eu/?n=8963
#################################################
# Chargement des Windows Form
#region
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)
#endregion
# Creation de la form principale
$form = New-Object Windows.Forms.Form
# Pour bloquer le resize du form et supprimer les icones Minimize and Maximize
$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedDialog
$form.MaximizeBox = $False
$form.MinimizeBox = $False
# Choix du titre
$form.Text = \"Creation user\"
# Choix de la taille
$form.Size = New-Object System.Drawing.Size(360,330)
# Récupére la description actuelle du poste
$old_name= Get-CimInstance -ClassName Win32_OperatingSystem | select Description
#################################################
# ajout des boutons graphiques
#################################################
# Ajout des boutons OK et Exit
$button_ok = New-Object System.Windows.Forms.Button
$button_ok.Text = \"OK\"
$button_ok.Size = New-Object System.Drawing.Size(100,30)
$button_ok.Location = New-Object System.Drawing.Size(140,150)
$form.Controls.Add($button_ok)# Affichage du bouton ok dans la Windows Form principale
$button_exit = New-Object System.Windows.Forms.Button
$button_exit.Text = \"Exit\"
$button_exit.Size = New-Object System.Drawing.Size(100,30)
$button_exit.Location = New-Object System.Drawing.Size(10,150)
$form.Controls.Add($button_exit)# Affichage du bouton exit dans la Windows Form principale
#################################################
# ajout du label prénom
#################################################
$label1 = New-Object System.Windows.Forms.Label
$label1.AutoSize = $true
$label1.Location = New-Object System.Drawing.Point(10,20)
$label1.Text = 'Prénom:'
$form.Controls.Add($label1)
$textBox1 = New-Object System.Windows.Forms.TextBox
$textBox1.Size = New-Object System.Drawing.Size(150,20)
$textBox1.Location = New-Object System.Drawing.Point(100,17)
$form.Controls.Add($textBox1)
#################################################
# ajout du label nom
#################################################
$label2 = New-Object System.Windows.Forms.Label
$label2.AutoSize = $true
$label2.Location = New-Object System.Drawing.Point(10,80)
$label2.Text = 'Nom:'
$form.Controls.Add($label2)
$textBox2 = New-Object System.Windows.Forms.TextBox
$textBox2.Size = New-Object System.Drawing.Size(150,20)
$textBox2.Location = New-Object System.Drawing.Point(100,77)
$form.Controls.Add($textBox2)
#################################################
# ajout du label Service
#################################################
$label3 = New-Object System.Windows.Forms.Label
$label3.AutoSize = $true
$label3.Location = New-Object System.Drawing.Point(10,120)
$label3.Text = 'Service:'
$form.Controls.Add($label3)
$textBox3 = New-Object System.Windows.Forms.TextBox
$textBox3.Size = New-Object System.Drawing.Size(150,30)
$textBox3.Location = New-Object System.Drawing.Point(100,117)
$form.Controls.Add($textBox3)
#################################################
#Compilation du nom et prénom
#################################################
#La commande suivante affichera abcd
#$Toto = $textBox1.Text
#################################################
# ajout du label nom
#################################################
$label4 = New-Object System.Windows.Forms.Label
$label4.Size = New-Object System.Drawing.Size(100,30)
$label4.Location = New-Object System.Drawing.Point(10,260)
$label4.Text = $Nom_prenom
$form.Controls.Add($label4)
#################################################
# Gestion des actions
#################################################
#################################################
# Gestion event quand on clique sur le bouton Fermer
#################################################
$button_exit.Add_Click(
{
$form.Close();
})
#################################################
# Gestion event quand on clique sur le bouton OK
#################################################
$button_ok.Add_Click(
{
#################################################
# Gestion nom et prénom
#################################################
#Calcul du nombre de caractère du prénom
$nb_textbox1=$textBox1.Text.Length
#mise en variable de la premiere lettre du prenom
$prenom_light= $textBox1.Text.substring(0,$textBox1.Text.length -($nb_textbox1-1))
#Calcul du nombre de caractère du nom
$nb_textbox2=$textBox2.Text.Length
Write-host 'nb_textbox2' $nb_textbox2
if ($nb_textbox2-lt '6')
{$nb_maxi =0}
else{$nb_maxi = 6}
#mise en variable du nom avec 7 lettres aux maxi
$nom_light= $textBox2.Text.substring(0,$textBox2.Text.length -$nb_maxi )
#Nom_profil utiliser pour le compte AD et P:
$Nom_profil= $nom_light+$prenom_light
$PersonnelPathRoot = \"C:\\"
# Creation du dossier personnel
New-Item -ItemType Directory -Path \"$PersonnelPathRoot\$Nom_profil\"
# Modification du partage pour n'autoriser l'accès cas l'user
$bloquage = \"$\"
$destination = \"$PersonnelPathRoot$Nom_profil\"
Write-host $destination
#New-SmbShare –Name $Nom_profil$ -Path $destination
New-SmbShare –Name dudul$ –Path C:\dudul -FullAccess \"dudul\"
# Ajout des autorisations NTFS
Add-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\" –Account \"$Nom_profil\" –AccessRights Modify
# Modifier le proprietaire sur le dossier
Set-NTFSOwner -Path \"$PersonnelPathRoot\$Nom_profil\" -Account \"$Nom_profil\"
# Creation du dossier Personnel_privé
New-Item -ItemType Directory -Path \"$PersonnelPathRoot\$Nom_profil\Personnel_prive\"
# Ajout des autorisations NTFS
Add-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\Personnel_prive\" –Account \"$Nom_profil\" -AccessType Deny -AppliesTo ThisFolderOnly -AccessRights Delete
# Supprimer des autorisations NTFS
Remove-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\" –Account \"Utilisateurs\" -AccessRights FullControl
})
# Affichage de la Windows
$form.ShowDialog()
#################################################
# END OF PROGRAM
#################################################
[/code:1]
[code:1]
# Ajout des autorisations NTFS
Add-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\Personnel_prive\" –Account \"$Nom_profil\" -AccessType Deny -AppliesTo ThisFolderOnly -AccessRights Delete
[/code:1]
je refus la suppression que pour le dossier et non pour le contenue.
Je vous remercie
[code:1]Install-Module NTFSSecurity
#################################################
# 2013-04-07 - TGI
# Downloaded on blog.akril.net
# www.tutos.eu/?n=8963
#################################################
# Chargement des Windows Form
#region
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)
#endregion
# Creation de la form principale
$form = New-Object Windows.Forms.Form
# Pour bloquer le resize du form et supprimer les icones Minimize and Maximize
$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedDialog
$form.MaximizeBox = $False
$form.MinimizeBox = $False
# Choix du titre
$form.Text = \"Creation user\"
# Choix de la taille
$form.Size = New-Object System.Drawing.Size(360,330)
# Récupére la description actuelle du poste
$old_name= Get-CimInstance -ClassName Win32_OperatingSystem | select Description
#################################################
# ajout des boutons graphiques
#################################################
# Ajout des boutons OK et Exit
$button_ok = New-Object System.Windows.Forms.Button
$button_ok.Text = \"OK\"
$button_ok.Size = New-Object System.Drawing.Size(100,30)
$button_ok.Location = New-Object System.Drawing.Size(140,150)
$form.Controls.Add($button_ok)# Affichage du bouton ok dans la Windows Form principale
$button_exit = New-Object System.Windows.Forms.Button
$button_exit.Text = \"Exit\"
$button_exit.Size = New-Object System.Drawing.Size(100,30)
$button_exit.Location = New-Object System.Drawing.Size(10,150)
$form.Controls.Add($button_exit)# Affichage du bouton exit dans la Windows Form principale
#################################################
# ajout du label prénom
#################################################
$label1 = New-Object System.Windows.Forms.Label
$label1.AutoSize = $true
$label1.Location = New-Object System.Drawing.Point(10,20)
$label1.Text = 'Prénom:'
$form.Controls.Add($label1)
$textBox1 = New-Object System.Windows.Forms.TextBox
$textBox1.Size = New-Object System.Drawing.Size(150,20)
$textBox1.Location = New-Object System.Drawing.Point(100,17)
$form.Controls.Add($textBox1)
#################################################
# ajout du label nom
#################################################
$label2 = New-Object System.Windows.Forms.Label
$label2.AutoSize = $true
$label2.Location = New-Object System.Drawing.Point(10,80)
$label2.Text = 'Nom:'
$form.Controls.Add($label2)
$textBox2 = New-Object System.Windows.Forms.TextBox
$textBox2.Size = New-Object System.Drawing.Size(150,20)
$textBox2.Location = New-Object System.Drawing.Point(100,77)
$form.Controls.Add($textBox2)
#################################################
# ajout du label Service
#################################################
$label3 = New-Object System.Windows.Forms.Label
$label3.AutoSize = $true
$label3.Location = New-Object System.Drawing.Point(10,120)
$label3.Text = 'Service:'
$form.Controls.Add($label3)
$textBox3 = New-Object System.Windows.Forms.TextBox
$textBox3.Size = New-Object System.Drawing.Size(150,30)
$textBox3.Location = New-Object System.Drawing.Point(100,117)
$form.Controls.Add($textBox3)
#################################################
#Compilation du nom et prénom
#################################################
#La commande suivante affichera abcd
#$Toto = $textBox1.Text
#################################################
# ajout du label nom
#################################################
$label4 = New-Object System.Windows.Forms.Label
$label4.Size = New-Object System.Drawing.Size(100,30)
$label4.Location = New-Object System.Drawing.Point(10,260)
$label4.Text = $Nom_prenom
$form.Controls.Add($label4)
#################################################
# Gestion des actions
#################################################
#################################################
# Gestion event quand on clique sur le bouton Fermer
#################################################
$button_exit.Add_Click(
{
$form.Close();
})
#################################################
# Gestion event quand on clique sur le bouton OK
#################################################
$button_ok.Add_Click(
{
#################################################
# Gestion nom et prénom
#################################################
#Calcul du nombre de caractère du prénom
$nb_textbox1=$textBox1.Text.Length
#mise en variable de la premiere lettre du prenom
$prenom_light= $textBox1.Text.substring(0,$textBox1.Text.length -($nb_textbox1-1))
#Calcul du nombre de caractère du nom
$nb_textbox2=$textBox2.Text.Length
Write-host 'nb_textbox2' $nb_textbox2
if ($nb_textbox2-lt '6')
{$nb_maxi =0}
else{$nb_maxi = 6}
#mise en variable du nom avec 7 lettres aux maxi
$nom_light= $textBox2.Text.substring(0,$textBox2.Text.length -$nb_maxi )
#Nom_profil utiliser pour le compte AD et P:
$Nom_profil= $nom_light+$prenom_light
$PersonnelPathRoot = \"C:\\"
# Creation du dossier personnel
New-Item -ItemType Directory -Path \"$PersonnelPathRoot\$Nom_profil\"
# Modification du partage pour n'autoriser l'accès cas l'user
$bloquage = \"$\"
$destination = \"$PersonnelPathRoot$Nom_profil\"
Write-host $destination
#New-SmbShare –Name $Nom_profil$ -Path $destination
New-SmbShare –Name dudul$ –Path C:\dudul -FullAccess \"dudul\"
# Ajout des autorisations NTFS
Add-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\" –Account \"$Nom_profil\" –AccessRights Modify
# Modifier le proprietaire sur le dossier
Set-NTFSOwner -Path \"$PersonnelPathRoot\$Nom_profil\" -Account \"$Nom_profil\"
# Creation du dossier Personnel_privé
New-Item -ItemType Directory -Path \"$PersonnelPathRoot\$Nom_profil\Personnel_prive\"
# Ajout des autorisations NTFS
Add-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\Personnel_prive\" –Account \"$Nom_profil\" -AccessType Deny -AppliesTo ThisFolderOnly -AccessRights Delete
# Supprimer des autorisations NTFS
Remove-NTFSAccess –Path \"$PersonnelPathRoot\$Nom_profil\" –Account \"Utilisateurs\" -AccessRights FullControl
})
# Affichage de la Windows
$form.ShowDialog()
#################################################
# END OF PROGRAM
#################################################
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 5 ans 4 semaines #28577
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:droit ntfs et interdiction
Parfait !
Merci d'être venu poster ta solution
Merci d'être venu poster ta solution
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 ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.097 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [Résolu] Droit NTFS et interdiction