Question
Récuperer les ACL d'un partage (Résolu)
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 16 ans 7 mois #834
par balek
Récuperer les ACL d'un partage (Résolu) a été créé par balek
Bonjour ,
Je voudrais donc recuperer les acls au niveau dun ou plusieurs partages sur un serveur distant.
J'ai trouvé cette commande pour recuperer les partages mais je bloque un peu pour recuperer les acl. J'utilise donc :
Si vous avez un bonne idee, je suis preneur.
PS : je viens d'installer Powertab, c'est genial !! <br><br>Message édité par: Arnaud, à: 13/09/07 17:47
Je voudrais donc recuperer les acls au niveau dun ou plusieurs partages sur un serveur distant.
J'ai trouvé cette commande pour recuperer les partages mais je bloque un peu pour recuperer les acl. J'utilise donc :
Get-WmiObject -ComputerName tutu00003.tata.com Win32_Share > d:\share.txt
Si vous avez un bonne idee, je suis preneur.
PS : je viens d'installer Powertab, c'est genial !! <br><br>Message édité par: Arnaud, à: 13/09/07 17:47
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 7 mois #836
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:recuperer ACL d'un partage
Bonjour Balek,
Je sens que tu vas adorer PowerShell... En effet il existe une cmdlet pour faire cela et qui en plus est simple à utiliser.
Essaye cela :
[code:1]
Get-ACL \\monServeur\monPartage
[/code:1]
Exemple :
[code:1]
$aces = get-acl \\192.168.1.5\temp
$aces | format-list *
PSPath : Microsoft.PowerShell.Core\FileSystem::\\192.168.1.5\temp
PSParentPath :
PSChildName :
PSProvider : Microsoft.PowerShell.Core\FileSystem
Path : Microsoft.PowerShell.Core\FileSystem::\\192.168.1.5\temp
Owner : BUILTIN\Administrateurs
Group : G:«»S-1-5-21-2539229802-1766895802-1639501888-513
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.Acce
ssControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemA
ccessRule, System.Security.AccessControl.FileSystemAccessRule...}
Sddl : O:BAG:«»S-1-5-21-2539229802-1766895802-1639501888-513D:«»(A;OICIIO;GA;;;CO)(A
;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;CI;DCLC;;;BU)
AccessToString : CREATEUR PROPRIETAIRE Allow 268435456
AUTORITE NT\SYSTEM Allow FullControl
BUILTIN\Administrateurs Allow FullControl
BUILTIN\Utilisateurs Allow ReadAndExecute, Synchronize
BUILTIN\Utilisateurs Allow CreateFiles, AppendData
AuditToString :
AccessRightType : System.Security.AccessControl.FileSystemRights
AccessRuleType : System.Security.AccessControl.FileSystemAccessRule
AuditRuleType : System.Security.AccessControl.FileSystemAuditRule
AreAccessRulesProtected : False
AreAuditRulesProtected : False
AreAccessRulesCanonical : True
AreAuditRulesCanonical : True
[/code:1]
Ce qui t'interesses se trouvera dans la propriété Access je pense.
Par contre, pour que ça fonctionne il faut que tu aies ouvert un shell en tant qu'admin du domaine. Car malheureusement on ne peut pas passer de credentials à cette commande.
D'après les infos que j'ai pu glaner sur le Web, cela devrait arriver dans la V2 de PowerShell.
Enjoy !
Arnaud
PS: formidable PowerTab ! <br><br>Message édité par: Arnaud, à: 21/08/07 23:12
Je sens que tu vas adorer PowerShell... En effet il existe une cmdlet pour faire cela et qui en plus est simple à utiliser.
Essaye cela :
[code:1]
Get-ACL \\monServeur\monPartage
[/code:1]
Exemple :
[code:1]
$aces = get-acl \\192.168.1.5\temp
$aces | format-list *
PSPath : Microsoft.PowerShell.Core\FileSystem::\\192.168.1.5\temp
PSParentPath :
PSChildName :
PSProvider : Microsoft.PowerShell.Core\FileSystem
Path : Microsoft.PowerShell.Core\FileSystem::\\192.168.1.5\temp
Owner : BUILTIN\Administrateurs
Group : G:«»S-1-5-21-2539229802-1766895802-1639501888-513
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.Acce
ssControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemA
ccessRule, System.Security.AccessControl.FileSystemAccessRule...}
Sddl : O:BAG:«»S-1-5-21-2539229802-1766895802-1639501888-513D:«»(A;OICIIO;GA;;;CO)(A
;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;CI;DCLC;;;BU)
AccessToString : CREATEUR PROPRIETAIRE Allow 268435456
AUTORITE NT\SYSTEM Allow FullControl
BUILTIN\Administrateurs Allow FullControl
BUILTIN\Utilisateurs Allow ReadAndExecute, Synchronize
BUILTIN\Utilisateurs Allow CreateFiles, AppendData
AuditToString :
AccessRightType : System.Security.AccessControl.FileSystemRights
AccessRuleType : System.Security.AccessControl.FileSystemAccessRule
AuditRuleType : System.Security.AccessControl.FileSystemAuditRule
AreAccessRulesProtected : False
AreAuditRulesProtected : False
AreAccessRulesCanonical : True
AreAuditRulesCanonical : True
[/code:1]
Ce qui t'interesses se trouvera dans la propriété Access je pense.
Par contre, pour que ça fonctionne il faut que tu aies ouvert un shell en tant qu'admin du domaine. Car malheureusement on ne peut pas passer de credentials à cette commande.
D'après les infos que j'ai pu glaner sur le Web, cela devrait arriver dans la V2 de PowerShell.
Enjoy !
Arnaud
PS: formidable PowerTab ! <br><br>Message édité par: Arnaud, à: 21/08/07 23:12
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.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 16 ans 7 mois #840
par balek
Réponse de balek sur le sujet Re:recuperer ACL d'un partage
Merci pour ton aide.
J'aimerais plutot que de lancer la commande sur chaque partage, sonder les partages puis lancer un \"get-acl\"
Genre :
[code:1]$path = get-wmiobject -computername tutu-0003.tata.com win32_share
$acls = get-acl $path
$acls | format-list[/code:1]
Mais bon ca ne marche pas, j'ai une erreur ligne 2 caractere 16 ( au niveau du $path).
donc ca doit pas se faire comme ca.
Je cherche. Je pense qu'il faut utiliser \"foreach ...)
@+ tard
Message édité par: balek, à: 22/08/07 10:39<br><br>Message édité par: Arnaud, à: 22/08/07 17:37
J'aimerais plutot que de lancer la commande sur chaque partage, sonder les partages puis lancer un \"get-acl\"
Genre :
[code:1]$path = get-wmiobject -computername tutu-0003.tata.com win32_share
$acls = get-acl $path
$acls | format-list[/code:1]
Mais bon ca ne marche pas, j'ai une erreur ligne 2 caractere 16 ( au niveau du $path).
donc ca doit pas se faire comme ca.
Je cherche. Je pense qu'il faut utiliser \"foreach ...)
@+ tard
Message édité par: balek, à: 22/08/07 10:39<br><br>Message édité par: Arnaud, à: 22/08/07 17:37
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 7 mois #841
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:recuperer ACL d'un partage
J'ai fait un petit script vite fait qui a l'air de fonctionner. Il va lister les partages d'une machine passée en paramètres, exclure certains partages administratifs, puis afficher les ACLs des partages restants.
L'affichage des ACL est sans intérêt mais à toi de faire les actions que tu souhaites dessus à partir de là.
[code:1]
param ($Serveur = \"PowerServer\"«»)
$PartagesExclus = \"C$\", \"IPC$\", \"ADMIN$\", \"NETLOGON\"
$path = get-wmiobject -computername $Serveur win32_share
foreach ($i in $path)
{
$Partage=($i.Name).ToString()
if ($PartagesExclus -notcontains $Partage)
{
get-acl \\$Serveur\$partage | fl *
}
}
[/code:1]
Usage : Get-ACLsurPartages.ps1 -serveur ServeurX.powershell-scripting.com
N'oublie pas qu'il faut être admin du domaine pour lancer ce script à partir d'un client.
@++
Arnaud
L'affichage des ACL est sans intérêt mais à toi de faire les actions que tu souhaites dessus à partir de là.
[code:1]
param ($Serveur = \"PowerServer\"«»)
$PartagesExclus = \"C$\", \"IPC$\", \"ADMIN$\", \"NETLOGON\"
$path = get-wmiobject -computername $Serveur win32_share
foreach ($i in $path)
{
$Partage=($i.Name).ToString()
if ($PartagesExclus -notcontains $Partage)
{
get-acl \\$Serveur\$partage | fl *
}
}
[/code:1]
Usage : Get-ACLsurPartages.ps1 -serveur ServeurX.powershell-scripting.com
N'oublie pas qu'il faut être admin du domaine pour lancer ce script à partir d'un client.
@++
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.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 16 ans 7 mois #878
par balek
Réponse de balek sur le sujet Re:recuperer ACL d'un partage
Merci encore
Connexion ou Créer un compte pour participer à la conversation.
- Frisco
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 0
il y a 16 ans 3 semaines #2020
par Frisco
Réponse de Frisco sur le sujet Re:recuperer ACL d'un partage
Je viens d'essayer le code ci-dessus, il marche très bien sauf qu'il prend les imprimantes comme des shares, est-ce qu'il y a moyen de faire en sorte que les imprimantes soient exclues ?
D'avance merci
D'avance merci
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.099 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Récuperer les ACL d'un partage (Résolu)