Ãëàâíàÿ > WSH ñêðèïòû > Ïîèñê ãðóïïû â ACL âëîæåííûõ ïàïîê ïåðâîãî óðîâíÿ
Ïîèñê ãðóïïû â ACL âëîæåííûõ ïàïîê ïåðâîãî óðîâíÿ3 àïðåëÿ 2012. Ðàçìåñòèë: dimon |
Ñêðèïò ïðîñìàòðèâàåò ACL âëîæåíûõ ïàïîê ïåðâîãî óðîâíÿ è èùåò óêàçàííóþ ãðóïïó. Ïðè îáíàðóæåíèè óêàçàííîé ãðóïïû â ñïèñêå â ëîã çàïèñûâàåòñÿ èìÿ ïàïêè. Ëîã âûñûëàåòñÿ àäìèíó íà ìûëî.
'---------------------------------------------------------------------- ' ' Copyright (c) All rights reserved. ' ' ' AUTHOR: tudimon.com ' DATE: 03.04.2012 ' NAME: acl_group_in_log_v2.vbs ' ' COMMENT: ' ' Ñêðèïò ïðîñìàòðèâàåò ACL âëîæåíûõ ïàïîê ïåðâîãî óðîâíÿ è èùåò óêàçàííóþ ãðóïïó. ' Ïðè îáíàðóæåíèè óêàçàííîé ãðóïïû â ñïèñêå â ëîã çàïèñûâàåòñÿ èìÿ ïàïêè. ' ' '---------------------------------------------------------------------- StartPath = "C:\1" ' Ñòàðòîâàÿ ïàïêà, ïðîñìàòðèâàåì ACL âëîæåííûå â íåå ïàïîê ïåðâîãî óðîâíÿ LogFilePath = "c:\log.log" ' ëîã-ôàéë ACLGroupName = "DOMAIN\GROUPNAME" ' èìÿ èñêîìîé ãðóïïû LogTXT = "" ' ïåðåìåííàÿ äëÿ çàïèñè â ëîã '---------------------------------------------------------------------- LogTXT = LogTXT & vbNewLine & "******************** " & Now & "********************" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(StartPath) Set colSubfolders = objFolder.Subfolders For Each objSubfolder in colSubfolders CurrentPath = objSubfolder.Path Set objWsNet = CreateObject("WScript.Network") strComputer = objWsNet.ComputerName Set objWsNet = Nothing Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objSecSettings = objWMI.Get("Win32_LogicalFileSecuritySetting.Path='" & CurrentPath & "'") If objSecSettings.GetSecurityDescriptor(objSD) = 0 Then If Not IsNull(objSD.DACL) Then ' åñëè ACL ïðî÷èòàíû For Each objACE In objSD.DACL ACL_group_read = objACE.Trustee.Domain & "\" & objACE.Trustee.Name If ACL_group_read = ACLGroupName Then ' ãðóïïà îáíàðóæåíà LogTXT = LogTXT & vbNewLine & CurrentPath & " îáíàðóæåíà " & ACL_group_read Else ' ãðóïïà íå îáíàðóæåíà ' LogTXT = LogTXT & vbNewLine & "ãðóïïà íå îáíàðóæåíà" End If Next Set objACE = Nothing Else LogTXT = LogTXT & vbNewLine & "Ñïèñîê óïðàâëåíèÿ äîñòóïîì (ACL) ê çàäàííîìó îáúåêòó ïóñò. " & CurrentPath End If Else LogTXT = LogTXT & vbNewLine & "Íå óäàëîñü ïðî÷èòàòü äåñêðèïòîð áåçîïàñíîñòè îáúåêòà. " & CurrentPath End If Next Set objSD = Nothing Set objSecSettings = Nothing Set objWMI = Nothing ' Ïèøåì ëîã Set FSO = CreateObject("Scripting.FileSystemObject") Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True) LogTXT = LogTXT & vbNewLine & "*************************************************************" LogFile.WriteLine LogTXT LogFile.Close Set objFolder = Nothing Set objShell = Nothing WScript.Quit 0 *** v3 *** + îòïðàâêà ëîãà àäìèíèñòðàòîðó íà e-mail '---------------------------------------------------------------------- ' ' Copyright (c) All rights reserved. ' ' ' AUTHOR: tudimon.com ' DATE: 02.05.2012 ' NAME: alc_group_in_log_v3.vbs ' ' COMMENT: ' ' Ñêðèïò ïðîñìàòðèâàåò ACL âëîæåíûõ ïàïîê ïåðâîãî óðîâíÿ è èùåò óêàçàííóþ ãðóïïó. ' Ïðè îáíàðóæåíèè óêàçàííîé ãðóïïû â ñïèñêå â ëîã çàïèñûâàåòñÿ èìÿ ïàïêè. ' Ñïèñîê ïàïîê îòïðàâëÿåòñÿ íà e-mail àäìèíèñòðàòîðó ' ' ' '---------------------------------------------------------------------- StartPath = "G:\Share" ' Ñòàðòîâàÿ ïàïêà, ïðîñìàòðèâàåì âëîæåííûå â íåå ïàïêè ïåðâîãî óðîâíÿ LogFilePath = "c:\log.log" ' ëîã-ôàéë ALCGroupName = "Domain\ALC_group" ' èìÿ èñêîìîé ãðóïïû LogTXT = "" ' ïåðåìåííàÿ äëÿ çàïèñè â ëîã compName = "ServerName" ' èìÿ êîìïüþòåðà/ñåðâåðà strSMTP_Server = "smtp.local" ' SMTP ñåðâåð strSMTP_user = "admin" ' ëîãèí ïîëüçîâàòåëÿ äëÿ SMTP ñåðâåðà strSMTP_password = "secret_pass" ' ïàðîëü ïîëüçîâàòåëÿ äëÿ SMTP ñåðâåðà strTo = "support@domain.ru" ' e-mail êóäà îòñûëàåì ïðåäóïðåæäåíèå strFrom = "support@domain.ru" ' îò êîãî strSubject = "Find bad security on " & compName ' òåìà ñîîáùåíèÿ strBody = "" ' òåêñò ñîîáùåíèÿ needSentMail = 0 ' ôëàã, ÷òî òðåáóåòñÿ ñëàòü ïèñüìî - äîñòèãíóò ëèìèò '---------------------------------------------------------------------- LogTXT = LogTXT & vbNewLine & "******************** " & Now & "********************" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(StartPath) Set colSubfolders = objFolder.Subfolders For Each objSubfolder in colSubfolders CurrentPath = objSubfolder.Path Set objWsNet = CreateObject("WScript.Network") strComputer = objWsNet.ComputerName Set objWsNet = Nothing Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objSecSettings = objWMI.Get("Win32_LogicalFileSecuritySetting.Path='" & CurrentPath & "'") If objSecSettings.GetSecurityDescriptor(objSD) = 0 Then If Not IsNull(objSD.DACL) Then ' åñëè ACL ïðî÷èòàíû For Each objACE In objSD.DACL ALC_group_read = objACE.Trustee.Domain & "\" & objACE.Trustee.Name If ALC_group_read = ALCGroupName Then ' ãðóïïà îáíàðóæåíà LogTXT = LogTXT & vbNewLine & CurrentPath & " îáíàðóæåíà " & ALC_group_read needSentMail = 1 Else ' ãðóïïà íå îáíàðóæåíà ' LogTXT = LogTXT & vbNewLine & "ãðóïïà íå îáíàðóæåíà" End If Next Set objACE = Nothing Else LogTXT = LogTXT & vbNewLine & "Ñïèñîê óïðàâëåíèÿ äîñòóïîì (ACL) ê çàäàííîìó îáúåêòó ïóñò." End If Else LogTXT = LogTXT & vbNewLine & "Íå óäàëîñü ïðî÷èòàòü äåñêðèïòîð áåçîïàñíîñòè îáúåêòà." End If Next LogTXT = LogTXT & vbNewLine & "*************************************************************" Set objSD = Nothing Set objSecSettings = Nothing Set objWMI = Nothing ' åñëè ôëàã áûë èçìåíåí, òî óâåäîìèì ïî å-ìàéëó àäìèíèñòðàòîðà If needSentMail = 1 Then strBody = LogTXT Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP_Server Flds.Item("http://schemas.microsoft.com/cdo/configuration/SMTPAuthenticate") = cdoBasic Flds.Item("http://schemas.microsoft.com/cdo/configuration/SendUserName") = strSMTP_user Flds.Item("http://schemas.microsoft.com/cdo/configuration/SendPassword") = strSMTP_password Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 Flds.Update iMsg.Configuration = iConf iMsg.To = strTo iMsg.From = strFrom iMsg.Subject = strSubject iMsg.TextBody = strBody iMsg.Send End If ' Ïèøåì ëîã Set FSO = CreateObject("Scripting.FileSystemObject") Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True) LogFile.WriteLine LogTXT LogFile.Close Set objFolder = Nothing Set objShell = Nothing WScript.Quit 0 Åñëè íóæíî óêàçàòü íåñòàíäàðòíûé ïîðò SMTP Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25 Âåðíóòüñÿ íàçàä |