powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Прнадлежность файлов пользователям, можно определить?
7 сообщений из 7, страница 1 из 1
Прнадлежность файлов пользователям, можно определить?
    #34002835
Фотография mumka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Есть файловый сервак W2k3 SP1, на нем работает 300 человек, порядка 60 Гигов документов. Настроены квоты (от 200 Мб до Гига). Ползователи не всегда сохраняют инфу в личных папках и когда лимит на сервере заканчивается, просят увеличить его. К сожалению до сих пор не нашел инструмента, который бы позволил нормально дать статистику по тому где и что у какого пользователя записано, т.к. бывает, набросают фоток на сервак и забудут, а им потом места не хватает. Усилиями прошлого админа был наваян скрибтик, но работает он очень медленно, на таком количестве файлов ...
Мож кто подскажет другое решение данного вопроса?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
' Скрипт предназначен для поиска на логическом диске файлов, владельцем которых является
' определенный пользователь.
' Скрипт работает под Windows XP или Windows 2000 с установленным пакетом .NET

  const ForWriting = 2
  const TristateUseDefault = -2
  const TextScreenWide = 65

  On Error Resume Next
  
  Dim strComputer
  Dim objWMIService, colFiles, objFile
  Dim strUser, strOwner, intTotalSize
  Dim objFileDate, strCreationDate, strLastModified
  Dim objFileObject, objTextFile
  Dim intTotalFiles, intPartialCount, intCount

  If WScript.Arguments.Count<>3 Then
    WScript.Echo "Программа предназначена для вывода всех файлов, принадлежащих пользователю"
    WScript.Echo "Имя пользователя вводить без домена!"
    WScript.Echo "Пример запуска: cscript.exe showner <логический диск> <пользователь> <имя файла для результатов>"
    WScript.Echo "cscript.exe showner D: rust C:\TEMP\RUST.TXT - вывести все файлы на диске D:, принадлежащие"
    WScript.Echo "пользователю rust в файла C:\TEMP\RUST.TXT"
    WScript.Quit(1)
  End If

' Проверяем, или передана буква диска как <буква>:
  If Len(WScript.Arguments( 0 ))<> 2  Then
    WScript.Echo "Введите букву диска в виде <буква>:, например - D:"
    WScript.Quit( 2 )
  End If

' Создаем обьект objFile для вывода результатов в файл.
  Set objFileObject = CreateObject("Scripting.FileSystemObject")
' В WScript.Arguments( 2 ) передается имя файла для резльтатов.
  Set objTextFile = objFileObject.OpenTextFile(WScript.Arguments( 2 ), ForWriting, True, TristateUseDefault)

' Если файл не создан - сообщаем об ошибке и прерываем скрипт  
  If IsNull(objTextFile) Then
    WScript.Echo "Ошибка создания файла "+WScript.Arguments(2)
    WScript.Quit(0)
  End If


' Создаем обьект типа SWbemDateTime для конвертации в строковый формат 
  Set objFileDate = CreateObject("WbemScripting.SWbemDateTime")

' По умолчанию - текущий компьютер
  strComputer = "."

' Создаем список всех файлов на компьютере на заданном диске. Список помещается в коллекцию colFiles
  Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set colFiles = objWMIService.ExecQuery ("Select * from CIM_Datafile where Drive='" & WScript.Arguments(0) & "'" & " AND NOT(Path LIKE '%Общая для всех%')") 

  intTotalSize =  0 
  
  objTextFile.WriteLine "Формат вывода: <Файл>  <Размер>  <Время создания>  <Время изменения>"
  objTextFile.WriteLine "--------------------------------------------------------------------"

' Для удобства сравнения переводим все в верхний регистр. Сравниваем без учета регистра
' WScript.Arguments( 1 ) - содержит имя пользователя
  strUser = UCase(WScript.Arguments( 1 ))

  intTotalFiles = colFiles.Count

  WScript.StdOut.WriteLine "Всего будет обработано файлов: " + CStr(intTotalFiles)
  'WScript.Echo ""
  WScript.StdOut.WriteLine "10     20     30     40     50     60     70     80     90     100"
  'WScript.Echo ""
  WScript.StdOut.WriteLine "//-----//-----//-----//-----//-----//-----//-----//-----//-----//"	

' Опредеделяем кол-во файлов, после которого выводиться "." как индикатор. Полная текстова строка 
'  80  символов - полный цикл программы.
  intPartialCount = Round (intTotalFiles/TextScreenWide)
  If intPartialCount= 0  Then IntPartialCount= 1 

  intCount =  0 

' Выводим первый символ "." для отметки начала программы.
  WScript.StdOut.Write "."

  For Each objFile in colFiles

    intCount = intCount + 1

    If intCount = intPartialCount Then
      WScript.StdOut.Write "."
      intCount = 0
    End If

    Set wmiFileSecSetting = GetObject ("winmgmts:Win32_LogicalFileSecuritySetting.path='" & objFile.Name & "'")
    RetVal = wmiFileSecSetting.GetSecurityDescriptor(wmiSecurityDescriptor)
    Set Owner = wmiSecurityDescriptor.Owner
    
'   Имя пользователя-владельца переводим в верхний регистр.
    strOwner = UCase(Owner.Name)
	'WScript.Echo strOwner
    If strUser = strOwner Then
      objFileDate.Value = objFile.CreationDate
      strCreationDate = objFileDate.GetVarDate
      objFileDate.Value = objFile.LastModified
      strLastModified = objFileDate.GetVarDate

      objTextFile.WriteLine objFile.Name + " # " + CStr(objFile.FileSize) + " # " + CStr(strCreationDate) _
        + " # " + CStr(strLastModified)

      intTotalSize = intTotalSize + objFile.FileSize
    End If

  Next

  objTextFile.WriteLine "--------------------------------------------------------------------"
  objTextFile.WriteLine "Общий размер: " + CStr(intTotalSize)

  objTextFile.Close


   WScript.Echo ""
   WScript.Echo "--------------------------"
   WScript.Echo "Программа завершила работу"
   WScript.Echo "--------------------------"
...
Рейтинг: 0 / 0
Прнадлежность файлов пользователям, можно определить?
    #34002908
Biz©
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в поиск ... был такой тред в форуме ...
...
Рейтинг: 0 / 0
Прнадлежность файлов пользователям, можно определить?
    #34002944
Фотография mumka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Biz©в поиск ... был такой тред в форуме ...

Дай ссылку плз, уже все облазил, не выдает мне поиск нефига
...
Рейтинг: 0 / 0
Прнадлежность файлов пользователям, можно определить?
    #34003196
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mumka
я в FAQ решение написал :-)
--



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Прнадлежность файлов пользователям, можно определить?
    #34003217
Biz©
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин ... 30 сек и вот например
...
Рейтинг: 0 / 0
Прнадлежность файлов пользователям, можно определить?
    #34003303
Фотография mumka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2
mumka
я в FAQ решение написал :-)
--



Posted via ActualForum NNTP Server 1.3

СУПЕР!!! СПАСИБО!!! :)
Работает отлично!!! :)
...
Рейтинг: 0 / 0
Прнадлежность файлов пользователям, можно определить?
    #34003409
Biz©
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2
mumka
я в FAQ решение написал :-)

предлагаю в факерные сообщения добавлять всевозможные поисковые слова ... вот например поиск по слову "владелец" не вывел на фак, хотя это поиск именно по _владельцу_ ...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Прнадлежность файлов пользователям, можно определить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]