Сделать стартовойДобавить в закладки  
Главная страничка Главная страничка
В номере:

    Выходит с 17 июля 2008 г. цена договорная

    Опрос

    Windows Mobile
    Symbian
    Android
    iPhone
    Linux
    другая
    не знаю
    у меня обычный телефон



    Календарь
    «    Апрель 2012    »
    ПнВтСрЧтПтСбВс
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30 

    Архив новостей
    Март 2022 (1)
    Декабрь 2021 (1)
    Август 2021 (1)
    Июль 2021 (3)
    Февраль 2021 (3)
    Январь 2021 (1)

    Информация
    Поиск группы в ACL вложенных папок первого уровня
    OS, мобильные OS » Windows » WSH скрипты
    автор: dimon, опубликовано: 3 апреля 2012

    Скрипт просматривает 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




    acl_group_in_log_v2.rar [2,67 Kb] (cкачиваний: 42)





    *** 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



    alc_group_in_log_v3.rar [3,32 Kb] (cкачиваний: 37)



    Если нужно указать нестандартный порт SMTP
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25

     
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Чтобы Вам были доступны все функции Вам необходимо либо зарегистрироваться, либо зайти на сайт под своим именем.

    Другие новости по теме:

  • Рекурсивный список подкатологов и файлов в текстовый лог
  • Скрипт копирования файлов с установленным архивным битом в резервный катало ...
  • Список файлов в каталоге в текстовый файл
  • Список подкатологов в текстовый файл
  • Скрипт для мониторинга свободного места на локальных дисках с уведомлением ...


  • Комментарии:

    Оставить комментарий



     
    Информация
     
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


    Поиск по сайту:


    Облако тегов
    Android, Arduino, backup, CentOS, cmd, css, DLE, DLE хаки, domoticz, dzvents, Home Assistant, HomeAssistant, Linux, log, Monster, ogf3, RDP, Template, VBS, w2k8, windows, WSH, xiaomi, бумага, бумажный самолетик, верстка, иструкция, Карты, кино, Навигация, оригами, программа, рецензия, рецепт, скрипт, фигуры, шаблон, Яндекс, яндекс-карты

    Показать все теги
    Реклама
    раскрутка сайта бесплатно
    Главная страница | Регистрация | Добавить новость | Новое на сайте | Статистика | Поддержка | Правила ресурса Copyright © 2005-2021 by dimon - all right reserved!
    Тираж:           экземпляров.   Дизайн, верстка by dimon