Question Récuperer les ACL d'un partage (Résolu)

Plus d'informations
il y a 16 ans 7 mois #834 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 :

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.

Plus d'informations
il y a 16 ans 7 mois #836 par Arnaud Petitjean
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

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.

Plus d'informations
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 \&quot;get-acl\&quot;

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 \&quot;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.

Plus d'informations
il y a 16 ans 7 mois #841 par Arnaud Petitjean
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 = \&quot;PowerServer\&quot;«»)

$PartagesExclus = \&quot;C$\&quot;, \&quot;IPC$\&quot;, \&quot;ADMIN$\&quot;, \&quot;NETLOGON\&quot;

$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.

Plus d'informations
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.

Plus d'informations
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

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.071 secondes
Propulsé par Kunena