![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Всем привет.
Есть сервер и есть пользователи, которые постоянно то создают папки, то файлы, переименовывают их и перемещают. Есть ли такая программа, которая бы следи за этими процессами и записывала, кто и когда это сделал? |
|
|
|
|
| Реклама: | духовой шкаф газовый | Сплит-система EKSA-85HN/EKOA-85HN | AVITO PINTEREST | клапан vvg 1,6 | кровать раскладная |
|
|
#2
|
|
по моему в настройках любого сервера есть такая фича. будь то AD на winserver'e я не говорю про *unix подобные
|
|
|
|
|
| Сказали спасибо: |
|
|
#3
|
|
да не знаю, как не замечал. Может подскажешь поподробней
|
|
|
|
|
|
|
#4
|
|
исходя из выше сказанного я так понимаю что сервер виндовый!? и я так понимаю что поднят AD? пользователи имеют персональные аккаутны или входят в группу.... и вообще зачем к серваку коннектиться так много народу.. доступ к серваку должен иметь только ОДИН человек или максимум ДВА....
|
|
|
|
|
| Сказали спасибо: |
|
|
#5
|
|
Неактивный пользователь
Пол:
Регистрация: 23.12.2006
Сообщений: 9
Репутация: 1
|
У нас тоже есть сервер с файлопомойкой, и точно такая же пробмлема.
Раньше пробовали решить проблему таким образом: создается полность расшаренная для пользователей AD папка-файлопомойка, затем ответсвенный сортирует их по целевым папкам. Сейчас поступаем так: сервер-прога следит за новыми поступлениями файлов, каким-то хитрым образом понимает от какого юзера он писался и формирует в конце или в начале каждого рабочего дня запрос с пояснениями. Юзер заполняет совсем нехитрую анкету по каждому файлу или папке и отсылает ответ через клиент, потом, на сервак обрабатывает входящие анкеты и размещает файлы должным образом на серваке, отсылая полные отчеты о поступлениях админу. Админ долго рылся по форумам и трепетно изучал, теперь не признается как это работает. З.Ы. Если анкета не пришла в теч. недели файлы убиваются. |
|
|
|
| Сказали спасибо: |
|
|
#6
|
|
Неактивный пользователь
Регистрация: 05.06.2008
Адрес: Zhukovsky M. O.
Сообщений: 20
Репутация: 2
|
по хистори пользователей смотри
|
|
|
|
|
|
#7
|
|
Новичок
Пол:
Регистрация: 25.11.2006
Сообщений: 28
Репутация: 4
|
Можно писАть логи файл-аудита. Пишутся в лог Security на сервере. Задается в ГП в настройках аудита, и потом в нужных папках включается аудит для определенных групп пользователей. Только писАть желательно осмысленно, т.к. если поставить запись логов папки с базой 1С DBF - потом ничего найти нельзя, слишком много мусора.
|
|
|
|
|
|
#8
|
|
У меня сделана файлопомойка по достаточно жёстким правила , у каждого одела свой каталог с папками юзеров отдела , создавать и удалять они имеют право только в своём каталоге + в каждом отделе своя расшаренная папка с доступом только для этого отдела, помимо этого создана шаровая папка для обмена инфой между отделами которая автоматом очищаеться каждые сутки
|
|
|
|
|
| Сказали спасибо: |
|
|
#9
|
|
ViP
![]() Пол:
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
vAviLons, если не ошибаюсь, подобную тему ты создавал в разделе по винде.
Выход один - включать аудит на нужные папки. Стандартная виндовая фича. Анализировать логи потом LogParser'ом или глазами. |
|
|
|
| Сказали спасибо: |
|
|
#10
|
|
Неактивный пользователь
Регистрация: 29.12.2008
Сообщений: 7
Репутация: 1
|
настроить необходимую стр-ру прав =). если пользователь может переместить свой документ с своей папке - проблемы исключительно его. в общих папках таких прав у него быть недолжно. а аудит при большом кол-ве данных может просто завалить вас объемом сообщений.
|
|
|
|
| Сказали спасибо: |
|
|
#11
|
|
Неактивный пользователь
Пол:
Регистрация: 04.02.2008
Сообщений: 5
Репутация: 0
|
Можно настроить ФТП серв и следить за файлами по логам.
|
|
|
|
|
|
#12
|
|
Этот подход мне нравится больше. На просмотр логов хватит терпения не более чем на неделю. Наиболее легкий вариант следующий: 1. Все отделы имеют свои директории 2. Внутри каждой директории личные папки с доступом для чтения для всей группы 3. Внутри личной папки папка Private только с личным доступом 4. Назначение "Мои документы" на личную сетевую папку 5. Для каждого отдела папка Common для временного хранения (неболее 10 дней, после чего, файлы удаляются автоматически) Такой подход обеспечивает: 1. Нет локальных "Мои документы", что позволяет бэкапить все файлы 2. Если автоматизировать конфигурирование каждого пользователя, то "Мои документы" и все прочие групповые и личные иконки будут появляться на любой машине в зависимости от логина. Н Я старый и ленивый , поэтому сделал скрипт, довольно длинный, но с коментариями. Работает как с машины пользователя так и в сервере терминалов (меняется сетевой диск на локальный). Специально не готовил для печати.on error resume next dim UserPatch, UserProg dim UserPatchP dim UserComputer dim UserLocal dim Server, DriveLetter, DriveExport, Domain DriveLetter = "c:" DrivePublic = "c:" DriveExport = "M:" Server = "\\Begemot" PublicFolder = "\Public\" Domain ="pro100lifebase" Set wshNetwork = WScript.CreateObject("WScript.Network") Set wshShell = WScript.CreateObject("WScript.Shell") call MapNetwork(DrivePublic, PublicFolder) ' map network drive to Public Do while wshNetwork.username = "" WScript.Sleep 250 Loop User = wshNetwork.username domain = wshNetwork.userdomain UserComputer = wshNetwork.ComputerName if UCase(UserComputer) = "BEGEMOT" then UserLocal=true 'Локально на сервере DriveLetter = "c:" DrivePublic = "c:" else UserLocal=false 'На рабочей станции DriveLetter = Server DrivePublic = Server end if call DelIcon (GetDesktopPath, "_*.lnk") 'Удаление предедущих динамических иконок '================================================= ======================= ' конфигурация для интернета call regProxy ("10.1.1.165:3128") 'Установить proxy 'call regProxy ("") 'Нет proxy 'Стартовая страница call regStartPage ("http://www.bank.gov.ua/kurs/last_kurs1.htm") '================================================= ======================= 'Создание иконки на рабочем столе (директория общего пользования) 'параметры: ' имя иконки, путь, рабочая директория, путь к картинек (файл .ico), клавиши быстрого вызова call ShortCutDesktop("\\_Public.lnk", _ DrivePublic & PublicFolder, _ DrivePublic & PublicFolder, _ DrivePublic & PublicFolder & "Icons\CD.ico,0", _ "CTRL+ALT+P") ' используя ADSI получаем список групп, в которые входит пользователь adspath = "WinNT://" & domain & "/" & user set adsobj = GetObject(adspath) ' Вызов других подпрограмм based on the Windows NT group of the user dim GroupTitle ' Создание иконок для групп пользователей for each prop in adsobj.groups 'Для всех групп 'WScript.Echo "Group " & prop.name select case UCase(prop.name) ' имена групповых иконок case "GR_ACCOUNT" 'группа БУХГАЛТЕРИЯ if UserLocal then GroupTitle ="_Бухгалтерия" UserPatch ="\Program Files\1Cv77\BIN\" UserProg ="1cv7.exe" call ShortCutDesktop("\\" & GroupTitle & ".lnk", _ DriveLetter & UserPatch & UserProg, _ DriveLetter & UserPatch, _ DrivePublic & PublicFolder & "Icons\WorkGroup.ico,0", "") end if GroupTitle ="_Директория для экспорта" if UserLocal then UserPatch ="\Users\1C\pro100life\Out\" end if ' Всегда создавать диск m: для экспорта UserPatch ="\Out\" call MapNetwork(DriveExport, Server & UserPatch) 'Диск на букву UserProg ="" call ShortCutDesktop("\\" & GroupTitle & ".lnk", _ DriveLetter & UserPatch & UserProg, _ DriveLetter & UserPatch, _ DrivePublic & PublicFolder & "Icons\Box.ico,0", "") case "GR_BUDGET" 'группа БЮДЖЕТ 'персональные директории if UserLocal then UserPatchP = DriveLetter & "\Users\Budget\" & User & "\" UserProg= "Budget.mdb" call ShortCutDesktop("\\_Бюджет.lnk", _ UserPatchP & UserProg, _ UserPatchP, _ DrivePublic & PublicFolder & "Icons\Computer.ico,0", "") end if case "GR_METODOLOGY" 'группа МЕТОДОЛОГИИ 'Для работы с базой на Access (1 файл с данными и интерфейсные файлы с прилинкованной базой 'для каждого клиента if UserLocal then 'персональные директории для каждого пользователя группы UserPatchP = DriveLetter & "\Users\Clients\" & User & "\" UserProg= "Clients.mdb" call ShortCutDesktop("\\_Страховой учет.lnk", _ UserPatchP & UserProg, _ UserPatchP, _ DrivePublic & PublicFolder & "Icons\Computer.ico,0", "") end if case else UserPatch ="" end select next UserPatch ="" ''----------------------------------------------------------------- ' Пути на личные директории 'Wscript.echo UCase(User) UserPatch =" " ' select case Left(UCase(User),3) 'case "ADM" ' UserPatch ="ADM" 'case "AC_" ' UserPatch ="Account\"& User 'case else ' UserPatch =" " ' end select 'Wscript.echo "home icon " & Server & UserPatch if UserPatch <> " " then call ShortCutDesktop("\\_Рабочий каталог.lnk", _ Server & UserPatch, _ Server & UserPatch, _ PublicFolder & "Icons\Computer.ico,0", _ "CTRL+ALT+H") 'Установка "Мои Документы" на сетевую папку call regMyDoc (Server & UserPatch) end if '------------------------------------------------------------------------------ ' Все. Дальше реализация использованных процедур function GetDesktopPath 'Путь к рабочему столу Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") GetDesktopPath = WSHShell.SpecialFolders("Desktop") end function sub DelIcon (SPach, Mask) 'Удаление файлов по маске Dim FSO Set FSO = WScript.CreateObject("Scripting.FileSystemObject") FSO.DeleteFile SPach & "\" & Mask end sub sub ShortCutDesktop(Name, TargetPath, WorkingDirectory, IconLocation,HotKey) '------------------------------------------------------------------ ' Этот пример показывает, как использовать объект WSHShell ' для создания ярлыка на Рабочем столе. ' ************************************************** *************' * ' * Методы, связанные с ярлыками. ' * 'WScript.Echo "**ShortCutDesktop " & Name & ", " & TargetPath & ", " & WorkingDirectory & ", " & IconLocation Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") Dim MyShortcut, MyDesktop, DesktopPath if TRUE then ' Читаем путь к Рабочему столу DesktopPath = WSHShell.SpecialFolders("Desktop") 'WScript.Echo "[" & DesktopPath & "]" ' Создаем ярлык на Рабочем столе 'WScript.Echo "ShortCutDesktop " & TargetPath Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\" & Name) ' "\Shortcut to notepad.lnk") ' Задаем свойства объекта-ярлыка и сохраняем их MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings(TargetPath) 'WSHShell.ExpandEnvironmentStrings ("%windir%\notepad.exe") MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings(WorkingDirectory ) 'WSHShell.ExpandEnvironmentStrings ("%windir%") MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings(IconLocation) 'WSHShell.ExpandEnvironmentStrings ("%windir%\notepad.exe, 0") if Len(HotKey) > 1 then MyShortcut.HotKey = HotKey end if MyShortcut.WindowStyle = 4 MyShortcut.Save '''''''WScript.Echo TargetPath end if end sub sub MapNetwork(driveletter, netsharex) on error resume next err.clear '------------------------------------------------------------------ ' проверяем наличие сетевого диска, в случае его присутствия удаляем ' и добавляет новое назначение dim netshare dim k k = Len(netsharex) '''''WScript.Echo k if CompStr(Right(netsharex,1), "\",1) then netshare = Left(netsharex,k-1) else netshare = netsharex end if 'WScript.Echo "Подключаем сетевой диск." & netsharex & "->" & netshare & "]" Dim Drive 'WScript.Echo "Проверяем наличие подключенного сетевого диска " & DriveLetter CheckNetworkMapping = False For Each Drive In wshNetwork.EnumNetworkDrives if LCase(Drive) = LCase(DriveLetter) Then CheckNetworkMapping = True Exit For End if Next If CheckNetworkMapping Then 'WScript.Echo "Сетевой диск найден" wshNetwork.RemoveNetworkDrive driveletter, true if err <> 0 then 'WScript.Echo "не могу отключить " & driveletter end if Else 'WScript.Echo " Сетевой диск не найден" End if wshNetwork.MapNetworkDrive driveletter, netshare, false if err <> 0 then 'Подключение не удалось 'WScript.Echo "не могу ассоциировать " & driveletter & " с " & netshare end if end sub sub regPrinter '================================================= ========================= ' ' NAME: TSPrintFix.vbs ' ' AUTHOR: Mark D. MacLachlan , The Spider's Parlor ' URL: http://www.thespidersparlor.com ' (c) 2003 All Rights Reserved ' DATE : 12/22/2003 ' ' COMMENT: Fixes printing via terminal services to allow DOT4 printers ' '================================================= ========================= myPrompt = MsgBox("This script will set up your printers for use with Terminal Services",vbOKCancel,"Setup Printers for Terminal Services?") If myPrompt = 1 Then Set WshShell=WScript.CreateObject("WScript.Shell") keypath ="HKCU\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR\FilterQueueType" WshShell.RegWrite keypath, -1, "REG_DWORD" If WshShell.RegRead(keypath) = "-1" Then MsgBox "Setup was successful",,"Success" Else MsgBox "Sorry A Problem Was Encountered" & vbCrLf & "Make sure you have permission to write to the registry.",,"Something went wrong" End If End If WScript.Quit end sub sub regProxy (MYPROXY) 'WScript.Echo "Установка прокси сервера " & MYPROXY & "/" & Len(MYPROXY) prefix = "HKCU\Software\Microsoft\Windows\CurrentVersion\In ternet Settings\" if Len(MYPROXY) > 1 then 'WScript.Echo "Старые установки Proxy-сервера: " & wshShell.RegRead(prefix & "ProxyServer") wshShell.regWrite prefix & "ProxyServer", MYPROXY 'WScript.Echo "Новые установки Proxy-сервера: " & wshShell.RegRead(prefix & "ProxyServer") 'WScript.Echo prefix & "ProxyEnable" & ", 1" wshShell.regWrite prefix & "ProxyEnable", 1 'DWord(1) 'WScript.Echo "Новые установки Proxy-сервера: " & wshShell.RegRead(prefix & "ProxyEnable") else 'не использовать proxy wshShell.regWrite prefix & "ProxyEnable", DWord(0) end if end sub sub regStartPage(MyPage) 'Стартовая страничка для IE prefix = "HKCU\Software\Microsoft\Internet Explorer\Main\" wshShell.regWrite prefix & "Start Page", MyPage end sub sub regDNS (MYPROXY) 'Установка DNS сервера prefix = "HKCU\Software\Microsoft\Windows\CurrentVersion\In ternet Settings\" if Len(MYPROXY) > 1 then 'WScript.Echo "Старые установки Proxy-сервера: " & wshShell.RegRead(prefix & "ProxyServer") wshShell.regWrite prefix & "ProxyServer", MYPROXY 'WScript.Echo "Новые установки Proxy-сервера: " & wshShell.RegRead(prefix & "ProxyServer") wshShell.regWrite prefix & "ProxyEnable", DWord(1) 'WScript.Echo "Новые установки Proxy-сервера: " & wshShell.RegRead(prefix & "ProxyEnable") else 'не использовать proxy wshShell.regWrite prefix & "ProxyEnable", DWord(0) end if end sub sub regMyDoc (MyDoc) 'Установка "Мои документы" на сетевую папку prefix = "HKCU\Software\Microsoft\Windows\CurrentVersion\Ex plorer\Shell Folders\" 'WScript.Echo "Старые установки Мои документы: " & wshShell.RegRead(prefix & "Personal") wshShell.regWrite prefix & "Personal", MyDoc 'WScript.Echo "Новые установки Мои документы: " & wshShell.RegRead(prefix & "Personal") wshShell.regWrite prefix & "My Music", MyDoc & "\My Music" wshShell.regWrite prefix & "My Pictures", MyDoc & "\My Pictures" prefix = "HKCU\Software\Microsoft\Windows\CurrentVersion\Ex plorer\User Shell Folders\" WScript.Echo "*Старые установки Мои документы: " & wshShell.RegRead(prefix & "Personal") wshShell.regWrite prefix & "Personal", MyDoc WScript.Echo "*Новые установки Мои документы: " & wshShell.RegRead(prefix & "Personal") wshShell.regWrite prefix & "My Music", MyDoc & "\My Music" wshShell.regWrite prefix & "My Pictures", MyDoc & "\My Pictures" prefix = "HKLM\Software\Microsoft\Windows\CurrentVersion\Ex plorer\Shell Folders\" WScript.Echo "**Старые установки Мои документы: " & wshShell.RegRead(prefix & "Personal") wshShell.regWrite prefix & "Personal", MyDoc WScript.Echo "**Новые установки Мои документы: " & wshShell.RegRead(prefix & "Personal") wshShell.regWrite prefix & "My Music", MyDoc & "\My Music" wshShell.regWrite prefix & "My Pictures", MyDoc & "\My Pictures" end sub sub DelFiles (Disk, TheExtension) ' Удаление файлов с заданным расширением с диска Dim FSO, WSH Dim TheFolder, Message, YesNo Set FSO = CreateObject("Scripting.FileSystemObject") Set WSH = CreateObject("WScript.Shell") Set TheFolder = FSO.GetFolder(Disk) 'Сначать с заданого каталога 'TheExtension = InputBox("Укажите расширение файлов, которые нужно удалить, например: tmp. Использовать точку (.) запрещено") 'TheExtension = UCase(TheExtension) WorkWithSubFolders TheFolder, TheExtension MsgBox "Готово! Обработано " & TheCount & " каталогов. Щелкните на OK или нажмите Enter для завершения сценария." end sub Sub WorkWithSubFolders(ByVal AFolder, ByVal TheExtension) Dim MoreFolders, TempFolder KillFilesWithExtensionIn AFolder, TheExtension Set MoreFolders = AFolder.SubFolders For Each TempFolder In MoreFolders WorkWithSubFolders TempFolder, TheExtension Next End Sub Sub KillFilesWithExtensionIn(AFolder,TheExtension) Dim AFile, TheFiles On Error Resume Next Set TheFiles = AFolder.Files For Each AFile In TheFiles If UCase(FSO.GetExtensionName(AFile.Path)) = TheExtension Then AFile.Delete End If Next End Sub |
|
|
|
|
| Сказали спасибо: |
|
|
#13
|
|
Неактивный пользователь
Пол:
Регистрация: 29.01.2009
Сообщений: 5
Репутация: 4
|
Проще воспользоваться Microsoft Share Point Server'ом
|
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Нужна программа | lexxjr | Архив | 5 | 06.06.2009 21:40 |
| нужна программа | dyngo | Скорая помощь | 1 | 06.01.2009 13:36 |
| Нужна программа | sancuo_s | Архив | 4 | 23.03.2008 21:43 |
| Нужна программа... | Maximok | Веб - Программирование | 3 | 28.02.2008 13:48 |
|
|