vbscript to extract shares, share permissions, folder permissions from Windows 2008 server and others
Command on server:
"Shares&Permission.vbs" access_test.log
My example output:
https://docs.google.com/spreadsheets/d/15h3xZJmAB7lVhqRT-1t5lSAB0JQhhqgRl8bTulMgeSc/edit?usp=sharing
Vb script code, file name "Shares&Permission.vbs" :
strComputer = "."
StrReportFile = Trim(WScript.Arguments(0))
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set WriteHandle = ObjFSO.OpenTextFile(StrReportFile, 2, True, 0)
Set ObjWMI = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\" & StrComputer & "\Root\CIMV2")
Set ColShares = ObjWMI.ExecQuery("Select Name, Type, Path From Win32_Share", "WQL", &h10 + &h20)
WriteHandle.WriteLine "Permission;ShareName;Path;Domain;Name;Type" & ShareName
For Each Share In ColShares
str="Folder;"
If Share.Type = 0 Then
ShareName = Share.Name
SharePath = Share.Path
If StrComp(ShareName, "Print$", vbTextCompare) <> 0 Then
str=str & ShareName & ";" & SharePath & ";"
Set Folder = GetObject("WinMgmts:\\" & StrComputer & "\Root\CIMV2:Win32_LogicalFileSecuritySetting.path='" & SharePath & "'")
foldernameRetVal = Folder.GetSecurityDescriptor(foldername)
RetVal = Folder.GetSecurityDescriptor(foldername)
ObjDACL = foldername.DACL
For Each WMIAce In ObjDACL
Set Trustee = WMIAce.Trustee
Select Case WMIAce.AccessMask
Case 2032127
WriteHandle.WriteLine str & Trustee.Domain & ";" & Trustee.Name & ";FULL CONTROL"
Case 1245631
WriteHandle.WriteLine str & Trustee.Domain & ";" & Trustee.Name & ";MODIFY"
Case 1180095
WriteHandle.WriteLine str & Trustee.Domain & ";" & Trustee.Name & ";READ/WRITE"
Case 1179817
WriteHandle.WriteLine str & Trustee.Domain & ";" & Trustee.Name & ";READ ONLY"
Case Else
'WriteHandle.WriteLine str & Trustee.Domain & ";" & Trustee.Name & ";CUSTOM"
End Select
Set Trustee = Nothing
Next
End If
End If
Next
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalShareSecuritySetting")
For Each objItem In colItems
str="Share;"
Set colShr = objWMIService.ExecQuery("Select * from win32_share where name='" & objItem.Name & "'")
For Each objShr in colShr
str=str & objItem.Name & ";" & objShr.Path & ";"
Next
intRtn = objItem.GetSecurityDescriptor(wmiSecurityDescriptor)
colDACLs = wmiSecurityDescriptor.DACL
For Each objACE In colDACLs
Set objUserGroup = objACE.Trustee
Select Case objACE.AccessMask
Case 1179817
WriteHandle.WriteLine str & objUserGroup.Domain & ";" & objUserGroup.Name & ";READ"
Case 1245631
WriteHandle.WriteLine str & objUserGroup.Domain & ";" & objUserGroup.Name & ";CHANGE"
Case 2032127
WriteHandle.WriteLine str & objUserGroup.Domain & ";" & objUserGroup.Name & ";FULL CONTROL"
End Select
Next
Next
Set ColShares = Nothing
Set ObjWMI = Nothing
WriteHandle.Close
Set WriteHandle = Nothing
Set ObjFSO = Nothing
WScript.Quit
Comentarii
Trimiteți un comentariu