Obtenir la liste des permissions de sécurité d'un répertoire
3 réponses
Olivier
Bonjour à tous,
Depuis à certain nombre d'heure, je recherche une solution en VBScript pour
réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les
permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une
liste d'utilisateur qui ont une autorisation sur W:\GroupeIT et savoir si
c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un
fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès sur
un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next
' The folder named "testfolder" must exist on the C:\ drive.
Set wmiFileSecSetting = GetObject( _
"winmgmts:Win32_LogicalFileSecuritySetting.path='c:\\testfolder'")
RetVal = wmiFileSecSetting. _
GetSecurityDescriptor(wmiSecurityDescriptor)
If Err <> 0 Then
WScript.Echo "GetSecurityDescriptor failed" _
& VBCRLF & Err.Number & VBCRLF & Err.Description
WScript.Quit
Else
WScript.Echo "GetSecurityDescriptor succeeded"
End If
' Retrieve the DACL array of Win32_ACE objects.
DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider pour
résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y perd
un peux dans ce script.
En vous remerciant d'avance de votre aide,
Olivier
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry DEMAN [MVP]
Bonsoir,
Voici un lien sur un petit script qui réalise cela : http://base.faqexchange.info/documents%20partages/Scripting/VbScript/showperms.vbs.TXT
C'est cette partie-ci qui te donnera les droits de chaque "entrée".
Set oDacl = oSD.DiscretionaryAcl For each wmiAce in oDACL
' Trustee = wmiAce.Trustee select Case int(wmiAce.AccessMask) case 2032127 droits="FULL" case 1179817 droits="RX" case -1610612736 droits="RXe" case 1245631 droits="RWX" case 268435456 droits="FULL SUB ONLY" case else droits=Cstr(wmiAce.AccessMask) end select wscript.echo "Perms="&Droits&" Account=" & wmiAce.Trustee&" level="&Cstr(Level) Next
Depuis à certain nombre d'heure, je recherche une solution en VBScript pour réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une liste d'utilisateur qui ont une autorisation sur W:GroupeIT et savoir si c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès sur un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next ' The folder named "testfolder" must exist on the C: drive.
Set wmiFileSecSetting = GetObject( _ "winmgmts:Win32_LogicalFileSecuritySetting.path='c:testfolder'")
RetVal = wmiFileSecSetting. _ GetSecurityDescriptor(wmiSecurityDescriptor) If Err <> 0 Then WScript.Echo "GetSecurityDescriptor failed" _ & VBCRLF & Err.Number & VBCRLF & Err.Description WScript.Quit Else WScript.Echo "GetSecurityDescriptor succeeded" End If
' Retrieve the DACL array of Win32_ACE objects. DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider pour résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y perd un peux dans ce script.
En vous remerciant d'avance de votre aide, Olivier
Bonsoir,
Voici un lien sur un petit script qui réalise cela :
http://base.faqexchange.info/documents%20partages/Scripting/VbScript/showperms.vbs.TXT
C'est cette partie-ci qui te donnera les droits de chaque "entrée".
Set oDacl = oSD.DiscretionaryAcl
For each wmiAce in oDACL
' Trustee = wmiAce.Trustee
select Case int(wmiAce.AccessMask)
case 2032127
droits="FULL"
case 1179817
droits="RX"
case -1610612736
droits="RXe"
case 1245631
droits="RWX"
case 268435456
droits="FULL SUB ONLY"
case else
droits=Cstr(wmiAce.AccessMask)
end select
wscript.echo "Perms="&Droits&" Account=" & wmiAce.Trustee&"
level="&Cstr(Level)
Next
"Olivier" <Olivier@discussions.microsoft.com> a écrit dans le message de
news:2D4F4B2E-2C99-40DF-B369-4ABC74EAEBA5@microsoft.com...
Bonjour à tous,
Depuis à certain nombre d'heure, je recherche une solution en VBScript
pour
réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les
permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une
liste d'utilisateur qui ont une autorisation sur W:GroupeIT et savoir si
c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un
fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès
sur
un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next
' The folder named "testfolder" must exist on the C: drive.
Set wmiFileSecSetting = GetObject( _
"winmgmts:Win32_LogicalFileSecuritySetting.path='c:\testfolder'")
RetVal = wmiFileSecSetting. _
GetSecurityDescriptor(wmiSecurityDescriptor)
If Err <> 0 Then
WScript.Echo "GetSecurityDescriptor failed" _
& VBCRLF & Err.Number & VBCRLF & Err.Description
WScript.Quit
Else
WScript.Echo "GetSecurityDescriptor succeeded"
End If
' Retrieve the DACL array of Win32_ACE objects.
DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider
pour
résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y
perd
un peux dans ce script.
En vous remerciant d'avance de votre aide,
Olivier
Voici un lien sur un petit script qui réalise cela : http://base.faqexchange.info/documents%20partages/Scripting/VbScript/showperms.vbs.TXT
C'est cette partie-ci qui te donnera les droits de chaque "entrée".
Set oDacl = oSD.DiscretionaryAcl For each wmiAce in oDACL
' Trustee = wmiAce.Trustee select Case int(wmiAce.AccessMask) case 2032127 droits="FULL" case 1179817 droits="RX" case -1610612736 droits="RXe" case 1245631 droits="RWX" case 268435456 droits="FULL SUB ONLY" case else droits=Cstr(wmiAce.AccessMask) end select wscript.echo "Perms="&Droits&" Account=" & wmiAce.Trustee&" level="&Cstr(Level) Next
Depuis à certain nombre d'heure, je recherche une solution en VBScript pour réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une liste d'utilisateur qui ont une autorisation sur W:GroupeIT et savoir si c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès sur un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next ' The folder named "testfolder" must exist on the C: drive.
Set wmiFileSecSetting = GetObject( _ "winmgmts:Win32_LogicalFileSecuritySetting.path='c:testfolder'")
RetVal = wmiFileSecSetting. _ GetSecurityDescriptor(wmiSecurityDescriptor) If Err <> 0 Then WScript.Echo "GetSecurityDescriptor failed" _ & VBCRLF & Err.Number & VBCRLF & Err.Description WScript.Quit Else WScript.Echo "GetSecurityDescriptor succeeded" End If
' Retrieve the DACL array of Win32_ACE objects. DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider pour résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y perd un peux dans ce script.
En vous remerciant d'avance de votre aide, Olivier
Olivier
C'est parfait, je vous remercie de votre aide. Maintenant je comprend bien mieux.
"Thierry DEMAN [MVP]" wrote:
Bonsoir,
Voici un lien sur un petit script qui réalise cela : http://base.faqexchange.info/documents%20partages/Scripting/VbScript/showperms.vbs.TXT
C'est cette partie-ci qui te donnera les droits de chaque "entrée".
Set oDacl = oSD.DiscretionaryAcl For each wmiAce in oDACL
' Trustee = wmiAce.Trustee select Case int(wmiAce.AccessMask) case 2032127 droits="FULL" case 1179817 droits="RX" case -1610612736 droits="RXe" case 1245631 droits="RWX" case 268435456 droits="FULL SUB ONLY" case else droits=Cstr(wmiAce.AccessMask) end select wscript.echo "Perms="&Droits&" Account=" & wmiAce.Trustee&" level="&Cstr(Level) Next
Depuis à certain nombre d'heure, je recherche une solution en VBScript pour réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une liste d'utilisateur qui ont une autorisation sur W:GroupeIT et savoir si c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès sur un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next ' The folder named "testfolder" must exist on the C: drive.
Set wmiFileSecSetting = GetObject( _ "winmgmts:Win32_LogicalFileSecuritySetting.path='c:testfolder'")
RetVal = wmiFileSecSetting. _ GetSecurityDescriptor(wmiSecurityDescriptor) If Err <> 0 Then WScript.Echo "GetSecurityDescriptor failed" _ & VBCRLF & Err.Number & VBCRLF & Err.Description WScript.Quit Else WScript.Echo "GetSecurityDescriptor succeeded" End If
' Retrieve the DACL array of Win32_ACE objects. DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider pour résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y perd un peux dans ce script.
En vous remerciant d'avance de votre aide, Olivier
C'est parfait, je vous remercie de votre aide. Maintenant je comprend bien
mieux.
"Thierry DEMAN [MVP]" wrote:
Bonsoir,
Voici un lien sur un petit script qui réalise cela :
http://base.faqexchange.info/documents%20partages/Scripting/VbScript/showperms.vbs.TXT
C'est cette partie-ci qui te donnera les droits de chaque "entrée".
Set oDacl = oSD.DiscretionaryAcl
For each wmiAce in oDACL
' Trustee = wmiAce.Trustee
select Case int(wmiAce.AccessMask)
case 2032127
droits="FULL"
case 1179817
droits="RX"
case -1610612736
droits="RXe"
case 1245631
droits="RWX"
case 268435456
droits="FULL SUB ONLY"
case else
droits=Cstr(wmiAce.AccessMask)
end select
wscript.echo "Perms="&Droits&" Account=" & wmiAce.Trustee&"
level="&Cstr(Level)
Next
"Olivier" <Olivier@discussions.microsoft.com> a écrit dans le message de
news:2D4F4B2E-2C99-40DF-B369-4ABC74EAEBA5@microsoft.com...
Bonjour à tous,
Depuis à certain nombre d'heure, je recherche une solution en VBScript
pour
réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les
permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une
liste d'utilisateur qui ont une autorisation sur W:GroupeIT et savoir si
c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un
fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès
sur
un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next
' The folder named "testfolder" must exist on the C: drive.
Set wmiFileSecSetting = GetObject( _
"winmgmts:Win32_LogicalFileSecuritySetting.path='c:\testfolder'")
RetVal = wmiFileSecSetting. _
GetSecurityDescriptor(wmiSecurityDescriptor)
If Err <> 0 Then
WScript.Echo "GetSecurityDescriptor failed" _
& VBCRLF & Err.Number & VBCRLF & Err.Description
WScript.Quit
Else
WScript.Echo "GetSecurityDescriptor succeeded"
End If
' Retrieve the DACL array of Win32_ACE objects.
DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider
pour
résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y
perd
un peux dans ce script.
En vous remerciant d'avance de votre aide,
Olivier
C'est parfait, je vous remercie de votre aide. Maintenant je comprend bien mieux.
"Thierry DEMAN [MVP]" wrote:
Bonsoir,
Voici un lien sur un petit script qui réalise cela : http://base.faqexchange.info/documents%20partages/Scripting/VbScript/showperms.vbs.TXT
C'est cette partie-ci qui te donnera les droits de chaque "entrée".
Set oDacl = oSD.DiscretionaryAcl For each wmiAce in oDACL
' Trustee = wmiAce.Trustee select Case int(wmiAce.AccessMask) case 2032127 droits="FULL" case 1179817 droits="RX" case -1610612736 droits="RXe" case 1245631 droits="RWX" case 268435456 droits="FULL SUB ONLY" case else droits=Cstr(wmiAce.AccessMask) end select wscript.echo "Perms="&Droits&" Account=" & wmiAce.Trustee&" level="&Cstr(Level) Next
Depuis à certain nombre d'heure, je recherche une solution en VBScript pour réaliser la chose suivante :
J'aimerais faire un script, pour un utilisateur, qui va rechercher les permissions sur des répertoire réseaux. Par exemple, j'aimerais avoir une liste d'utilisateur qui ont une autorisation sur W:GroupeIT et savoir si c'est un accès Read ou R/W. Cela affin d'exporter les résultats dans un fichier Excell. J'arrive à voir les listes des utilisateurs qui ont accès sur un répertoire mais je ne vois pas les droits.
J'ai trouvé sur MSDN le code suivante :
*******************************************
On Error Resume Next ' The folder named "testfolder" must exist on the C: drive.
Set wmiFileSecSetting = GetObject( _ "winmgmts:Win32_LogicalFileSecuritySetting.path='c:testfolder'")
RetVal = wmiFileSecSetting. _ GetSecurityDescriptor(wmiSecurityDescriptor) If Err <> 0 Then WScript.Echo "GetSecurityDescriptor failed" _ & VBCRLF & Err.Number & VBCRLF & Err.Description WScript.Quit Else WScript.Echo "GetSecurityDescriptor succeeded" End If
' Retrieve the DACL array of Win32_ACE objects. DACL = wmiSecurityDescriptor.DACL
Mais cela ne résoud pas mon problème. Est-ce que quelqu'un peut m'aider pour résoudre ce problème ? Je sais qu'il existe le script XCACLS mais je m'y perd un peux dans ce script.
En vous remerciant d'avance de votre aide, Olivier
Méta-MCI
Bonjour !
En invite de commande : CACLS W:GroupeIT
On peut lancer la commande, depuis VBscript, avec RUN. Le résultat peut être détourné sur un PIPE, ou dans un fichier.
@-salutations
Michel Claveau
Bonjour !
En invite de commande :
CACLS W:GroupeIT
On peut lancer la commande, depuis VBscript, avec RUN.
Le résultat peut être détourné sur un PIPE, ou dans un fichier.