Question
Supprimer des droits NTFS
- vermersch
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 16
- Remerciements reçus 0
Je veux
- créer un repertoire,
- lui affecter les droits ntfs d'un utilisateur précédemment créer,
- puis supprimer les droits ntfs du groupe \"Utilisateurs\"(utilisateurs du domaine) sur ce même dossier.
Je bloque sur ma troisième étape depuis deux bonnes heures si quelqu’un connait la solution ça m'aiderait grandement =)
Je vous copie mon code
[code:1]
$login=\"stoto\"
#Création d'un repertoire privé
New-Item -Path x:\ -Name $login -ItemType directory
#Droits NTFS sur le repertoire
$acl = get-acl \"x:\$login\"
$ace = new-object System.Security.AccessControl.FileSystemAccessRule(\"$domaine\$login\", \"Fullcontrol\", 3, 0, \"Allow\"«»)
$acl.AddAccessRule($ace)
set-acl x:\$login $acl
#Suppression Droits NTFS sur le repertoire
$acl1 = get-acl \"x:\$login\"
$ace1 = new-object System.Security.AccessControl.FileSystemAccessRule(\"$domaine\Utilisateurs\", \"Fullcontrol\", 3, 1, \"Allow\"«»)
$acl1.RemoveAccessRule($ace1)
set-acl x:\$login $acl1
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
[code:1]$ace = new-object System.Security.AccessControl.FileSystemAccessRule(\"$domaine\$login\", \"Fullcontrol\", 3, 0, \"Allow\"«»)
[/code:1]
J'ai des doutes sur le fait que tu puisses utiliser des \"String\" et des \"Int\" en paramètre FileSystemAccessRule.
Tu pourras trouver des exemples ici : Working with Security Descriptors .
Un exemple :
[code:1]$colRights = [System.Security.AccessControl.FileSystemRights]\"Read\"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType =[System.Security.AccessControl.AccessControlType]::Allow
$objUser = New-Object System.Security.Principal.NTAccount(\"wingroup\kenmyer\"«»)
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule `
($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType)
$objACL = Get-ACL \"c:\scripts\test.ps1\"
$objACL.RemoveAccessRuleAll($objACE)
Set-ACL \"C:\Scripts\Test.ps1\" $objACL
[/code:1]
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
Le parseur reconnait les string, que l'on peut combiner, quant au int c'est fort probable, mais je ne n'utilise pas cette approche qui ne documente pas le code.J'ai des doutes sur le fait que tu puisses utiliser des \"String\" et des \"Int\" en paramètre FileSystemAccessRule.
Le cmdlet Trace-Command pourrait nous répondre...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
[code:1]trace-command -name TypeConversion,parser -expression {$ace = new-object System.Security.AccessControl.FileSystemAccessRule(\"domaine\login\", \"Fullcontrol\", 3, 0, \"Allow\"«»)} -option executionflow -pshost[/code:1]
Renvoi :
DÉBOGUER : TypeConversion Information: 0 : Converting \"500\" to \"System.Int32\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"System.Object[]\" to \"System.Object[]\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"500\" to \"System.Int32\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"System.Security.AccessControl.FileSystemAccessRule\" to
\"System.Type\".
DÉBOGUER : TypeConversion Information: 0 : Conversion to System.Type
DÉBOGUER : TypeConversion Information: 0 : Converting \"domaine\login\" to \"System.String\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"Fullcontrol\" to
\"System.Security.AccessControl.FileSystemRights\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"3\" to \"System.Security.AccessControl.InheritanceFlags\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"0\" to \"System.Security.AccessControl.PropagationFlags\".
DÉBOGUER : TypeConversion Information: 0 : Converting \"Allow\" to \"System.Security.AccessControl.AccessControlType\".
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- vermersch
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 16
- Remerciements reçus 0
Ce n'est pas la partie ou je rajoute un utilisateur en droit ntfs qui me pose problème. Elle fonctionne.
C'est la partie ou je cherche a supprimer le groupe \"utilisateurs\". (troisième paragraphe)
C'est étrange que Microsoft n'ai rien prévu pour une opération si banale.
Je vais essayer le code de Matthew dés lundi et je vous tiens au courant<br><br>Message édité par: karu, à: 1/06/12 11:02
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
Je vais essayer le code de Matthew dés lundi et je vous tiens au courant
Ce n'est pas \"mon\" code ... et je l'ai testé, il fonctionne comme un charme
Merci Laurent pour le retour.
@+
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Supprimer des droits NTFS