Задача: подсчитать место занимаемое данными пользователей в домене.
Реализация через Autoit.
Что делает скрипт: скрипт компилируется в EXE. После чего файл.exe устанавливается через GPO на запуск при входе пользователя в компьютер. Происходит калькуляция размера папок в которых хранятся перемещаемые профиля (можно переделать на любые папки). Данные записываются в текстовый файл. Для анализа используем простой Excel – импортируем данные из источника (указав этот текстовый файл), после чего ставим фильтры для выбора дат/пользователей.
Исходные данные:
\\fileserver.firma.ru\share$\PF_Size\db_pf_size.txt – файл на сетевой папке с возможностью записи любым пользователем.
\\firma.ru\shares\Home\ – тут домашний диск
\\firma.ru\shares\PF\ – тут профиля
Сам скрипт:
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 |
; ;подсчет сетевых или локальных папок ; #include <AutoItConstants.au3> #include <MsgBoxConstants.au3> #include <Array.au3> $my_Name = @username $my_Comp = @ComputerName $my_Date = @MDAY&"."&@MON&"."&@YEAR $my_Time = @HOUR&'.'&@MIN&'.'&@SEC $my_Home = '\\firma.ru\shares\Home\'& $my_Name & '\' $my_Prof = '\\firma.ru\shares\PF\' & $my_Name & '\' Local $my_Home_Size = 0 Local $my_Prof_Size = 0 $my_ReportPath = '\\fileserver.firma.ru\share$\PF_Size\db_pf_size.txt' $my_Home_Size = Round(DirGetSize($my_Home) / 1024 / 1024) $my_Prof_Size = Round(DirGetSize($my_Prof) / 1024 / 1024) Local $my_DataString = $my_Name &','& $my_Comp &','& $my_Date &','& $my_Time &','& $my_Home &','& $my_Home_Size &','& $my_Prof &','& $my_Prof_Size ConsoleWrite('HOME : ' & $my_Home_Size & @CRLF) ConsoleWrite('PROF : ' & $my_Prof_Size & @CRLF) ConsoleWrite('DATA : ' & $my_DataString & @CRLF) $hFile = FileOpen($my_ReportPath, 1) If $hFile = -1 Then ConsoleWrite('Error : ' & 'Невозможно открыть файл.' & @CRLF) Exit EndIf FileWriteLine($hFile, $my_DataString & @CRLF) FileClose($hFile) |