Задача — сделать отчет по файлам на компьютерах пользователей. При этом ищутся файлы по определенной маске. Требуется формировать файлы отчетов по каждому пользователю в домене.
Ниже представлен скрипт на PowerShell который ищет на компьютере файлы по заданной маске. после того как файлы найдены создается отчет в текстовом файле по всем найденным файлам. При поиске файлов PowerShell исключает некоторые папки из поиска.
1 2 3 4 5 6 7 8 9 10 11 12 |
cls cls timeout /t 900 $comp = $env:computername $user = $env:username $file = 'C:\MSBRO\'+$comp+'_'+$user+'_'+'.txt' $my_dir = get-wmiobject Win32_LogicalDisk | ? {$_.drivetype -eq 3} | % {get-psdrive $_.deviceid[0]} | %{ $my_in = $_.Root get-childitem $my_in -force -recurse | where { $_.FullName -notlike "*\Program Files\*" -and $_.FullName -notlike "*\Program Files (x86)\*" -and $_.FullName -notlike "*\Windows\*" -and $_.extension -match "doc|xls|docx|xlsx|pdf|pst|zip|rar|7z|iso" } } $my_dir | out-file -filepath $file -Encoding utf8 |
Скрипт отрабатывает с задержкой 900 секунд с момента запуска чтобы пользователь смог нормально загрузиться в систему и все программы и службы стартовали.
Вообще по опыту могу сказать следующее: этот скрипт можно использовать в качестве примера.
Я не смог заставить его нормально работать на всех компьютерах в домене (далеко не на всех).
PowerShell работает медленно и тяжело. К тому же он довольно плохо поддается настройке через условие Where {}.
Если хотите нормальной и четкой работы – воспользуйтесь этой http://msbro.ru/index.php/archives/5556 статьей и у вас все будет работать быстро и хорошо.
Удачи!
Скачать готовый скрипт можете тут: MSBRO_Find_Files_v2