Le vbscript ci-dessous génère un fichier type csv.
Collez son contenu dans un tableau excel pour avoir un résultat de ce type :
Copiez le script sur le serveur à examiner et double-cliquez dessus.
Le résultat sera généré dans un fichier à côté du script :
Option Explicit
Dim strComputer : strComputer = "."
Dim objWMIService : Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Dim colItems : Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalShareSecuritySetting")
Dim objShareSecuritySetting, intRtn, wmiSecurityDescriptor
Dim colDACLs, objACE, objUserGroup, strPermission, colShr, objShare
Dim varSharName, varSharPath, varUserOrGroup, UneLigne
Dim objFSO, objTextFile
Dim NomFichier, CheminFichier, CheminScriptActuel, ScriptFileName, Position
'Déclaration des constantes
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8
ScriptFileName = wscript.scriptname
Position = InstrRev(ScriptFileName,".")
if (Position > 0) Then ScriptFileName = Left(ScriptFileName, Position - 1)
NomFichier = ScriptFileName & "_Result.txt"
CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
CheminFichier = CheminScriptActuel & "\" & NomFichier 'Déclaration du chemin et du nom du fichier
If Len(CheminFichier) > 0 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(CheminFichier, ForWritting, True)
objTextFile.WriteLine "Share Name" & VbTab & "Path" & VbTab & "Group Name" & VbTab & "Permissions"
For Each objShareSecuritySetting In colItems
varSharName = ""
varSharName = objShareSecuritySetting.Name
Set colShr = objWMIService.ExecQuery("Select * from win32_share where name='" & objShareSecuritySetting.Name & "'")
For Each objShare in colShr
varSharPath = objShare.Path
Exit For
Next
intRtn = objShareSecuritySetting.GetSecurityDescriptor(wmiSecurityDescriptor)
colDACLs = wmiSecurityDescriptor.DACL
For Each objACE In colDACLs
UneLigne = ""
varUserOrGroup = ""
Set objUserGroup = objACE.Trustee
varUserOrGroup = objUserGroup.Name
If IsNull(varUserOrGroup) = True Then varUserOrGroup = "SID non resolu"
UneLigne = varSharName & VbTab & varSharPath & VbTab & varUserOrGroup
Select Case objACE.AccessMask
Case 1179817 strPermission = "READ"
Case 1245631 strPermission = "CHANGE"
Case 2032127 strPermission = "FULL CONTROL"
End Select
Set objUserGroup = Nothing
UneLigne = UneLigne & VbTab & strPermission
objTextFile.WriteLine UneLigne
Next
Next
objTextFile.Close 'Fermeture du fichier
Set objTextFile = Nothing
Set objFSO = Nothing
Else
Wscript.echo "Operation annulee"
End If 'CheminFichier
Lien vers le fichier : cliquez ici
Pages Web
Site Web | Description |
---|---|
Saltwetbytes.wordpress.com | Script d'origine que j'ai modifié pour ce besoin |
Article(s) en relation(s)