Précédent   Forum des professionnels en informatique > Systèmes > Windows > Sécurité
Sécurité Anti virus, firewall, spywares, vers, trojan, ... Avant de poster -> La Rubrique Sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2007, 15h52   #1
Invité de passage
 
Inscription : décembre 2002
Messages : 22
Détails du profil
Informations personnelles :
Âge : 42
Localisation : France

Informations forums :
Inscription : décembre 2002
Messages : 22
Points : 4
Points : 4
Par défaut Dossier partagés, quels users?

Bonjour les as!

Je souhaite récupérer la liste des permissions accordées sur tous les dossiers partagés d'un serveur donné. Pour le moment, avec un script qui figure plus bas, je récupère tous les dossiers partagés, reste donc à renseigner tous les comptes NT. A vos neurones.


Code pour récupérer les dossiers partagés:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ForAppending = 8
ResFIL = "c:\Dossiers_Partages.txt"
set oFSO = CreateObject("Scripting.FileSystemObject")
set oFIL = oFSO.opentextfile(ResFIL, ForAppending, TRUE)
Set oSHL = CreateObject("WScript.Shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")
For each oSHARE in colShares
  oFIL.write(oSHARE.caption & ";" & oSHARE.Name & ";" & oSHARE.Path & ";" & oSHARE.Type) & vbcrlf
  oFIL.write "net share " & oSHARE.Name & " >>" & ResFIL & vbcrlf
  oSHL.run "net share " & oSHARE.Name & " >>" & ResFIL, 10, FALSE
Next
oFIL.close
set oFIL = nothing
set oFSO = nothing
set oSHL = nothing
davidso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 14h39   #2
Membre chevronné
 
Inscription : décembre 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : décembre 2002
Messages : 1 057
Points : 779
Points : 779
Envoyer un message via MSN à portu
Je ne suis pas vraiment un pro de vbs et de WMI. Mais je pense que ceci pourrait t'aider.
http://msdn2.microsoft.com/en-us/library/aa394435.aspx

AccessMask et GetAccessMask devrait t'aider.
portu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 16h22   #3
Invité de passage
 
Inscription : décembre 2002
Messages : 22
Détails du profil
Informations personnelles :
Âge : 42
Localisation : France

Informations forums :
Inscription : décembre 2002
Messages : 22
Points : 4
Points : 4
Par défaut c bon maintenant, merci pour la dernière indication

... j'ai pu trouver une référence adequate:

ce qui me manquait était : Win32_LogicalShareSecuritySetting


Voici mon script complet... et bien entendu à améliorer pour ceux qui voudraient obtenir plus d'infos.

Citation:

on error resume next
ForAppending = 8
ResFIL = "Dossiers_Partages.csv"
set oFSO = CreateObject("Scripting.FileSystemObject")
set oFIL = oFSO.opentextfile(ResFIL, ForAppending, TRUE)
oFIL.write("NOM;CHEMIN;COMPTE_NT") & vbcrlf
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")
For each oSHARE in colShares
'oFIL.write(oSHARE.caption & ";" & oSHARE.Name & ";" & oSHARE.Path & ";" & oSHARE.Type) & vbcrlf
'msgbox oSHARE.Name

if oSHARE.Type = 0 then
Set wmiFileSecSetting = GetObject( _
"winmgmts:Win32_LogicalShareSecuritySetting.Name='" & oSHARE.Name & "'")
if Err <>0 then
oFIL.write("@" & oSHARE.name & ";Echec analyse LogicalShare") & vbcrlf
err.clear
Else
RetVal = wmiFileSecSetting.GetSecurityDescriptor(wmiSecurityDescriptor)
If Err <> 0 Then
WScript.Echo "GetSecurityDescriptor failed" _
& VBCRLF & Err.Number & VBCRLF & Err.Description
WScript.Quit
End If

' Retrieve the DACL array of Win32_ACE objects.
DACL = wmiSecurityDescriptor.DACL

For each wmiAce in DACL

'wscript.echo "Access Mask: " & wmiAce.AccessMask
'wscript.echo "ACE Type: " & wmiAce.AceType

' Get Win32_Trustee object from ACE
Set Trustee = wmiAce.Trustee
'oFIL.write(oSHARE.caption & ";" & Trustee.Domain)
oFIL.write(oSHARE.Name & ";" & oSHARE.Path & ";" & Trustee.Name) & vbcrlf

' Get SID as array from Trustee
'SID = Trustee.SID
'strsid = join(SID, ",")
'wscript.echo "Trustee SID: {" & strsid & "}"

Next
End if

Set wmiFileSecSetting = nothing
End if
Next
oFIL.close
set oFIL = nothing
set oFSO = nothing

msgbox "Terminé !"

davidso est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h26.


 
 
 
 
Partenaires

Hébergement Web