Вывод информации о пространстве.
Доброго времени суток.
Поступила задача от руководства, сделать им распечатку по каждому пользователю, сколько занимает место рабочий стол, папка загрузки и папка видео на терминальном сервере. Т.е. такого вида
user1
Рабочий стол: 10мб
Загрузки: 20мб
Видео: 30 мб
user2
...
Пользователей более 500 и я ручками просто замучаюсь это делать.
Может есть какой лайф хак и данные занести как-то в эксель таблицу?
Подскажите плз, опытные админы.
|
poisonkit,
ПО WinDirStat подойдёт?
P.S.
Вот эту папка точно на автоматическую очистку на терминальном сервере однозначно.
|
Цитата:
Цитата Anton04
ПО WinDirStat подойдёт? »
|
Я ей как раз пользуюсь, но не нашел функции, что-бы в таблицу выводил результат. Подскажите, как это сделать с помощью этой программы?
Цитата:
Цитата NickM
Как узнать размер каталога с помощью PowerShell? »
|
Не совсем понял, как можно реализовать под текущую задачу (
|
Цитата:
Цитата poisonkit
Не совсем понял, как можно реализовать под текущую задачу ( »
|
Что именно не поняли?
Как модифицировать предложенный сценарий для подкаталогов:
Цитата:
Цитата poisonkit
рабочий стол, папка загрузки и папка видео »
|
, или прочитать, понять направление и сделать по своему, или что?
|
Цитата:
Цитата NickM
прочитать, понять направление и сделать по своему »
|
Цитата:
Цитата NickM
модифицировать предложенный сценарий для подкаталогов: »
|
Например:
Код:
$targetfolder='C:\Users'
$dataColl = @()
gci -force $targetfolder -Directory -ErrorAction SilentlyContinue| % {
gci -force $_.fullname -Directory -ErrorAction SilentlyContinue| Where-Object {($_.Name -match "^Desktop$") -or ($_.Name -match "^Downloads$") -or ($_.Name -match "^Videos$")}| % {
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue| % { $len += $_.length }
$filesCount = (gci -recurse -force $_.fullname -File -ErrorAction SilentlyContinue| Measure-Object).Count
$dataObject = New-Object PSObject -Property @{
Folder = $_.fullname
SizeGb = ('{0:N3}' -f ($len / 1Gb)) -as [single]
filesCount=$filesCount
}
$dataColl += $dataObject
}
}
$dataColl| Export-Csv ([Environment]::GetFolderPath("Desktop")+"\outfile.csv") -Delimiter ';' -NoTypeInformation
Код:
"SizeGb";"Folder";"filesCount"
"0";"C:\Users\Default\Desktop";"0"
"0";"C:\Users\Default\Downloads";"0"
"0";"C:\Users\Default\Videos";"0"
"0";"C:\Users\k1r\Desktop";"3"
"0.319";"C:\Users\k1r\Downloads";"443"
"0.002";"C:\Users\k1r\Videos";"5"
"0";"C:\Users\Public\Desktop";"10"
"0";"C:\Users\Public\Downloads";"1"
"0";"C:\Users\Public\Videos";"1"
"0.585";"C:\Users\v17x\Desktop";"123"
"27.589";"C:\Users\v17x\Downloads";"4240"
"2.131";"C:\Users\v17x\Videos";"188"
|
Цитата:
Цитата poisonkit
Я ей как раз пользуюсь, но не нашел функции, что-бы в таблицу выводил результат. Подскажите, как это сделать с помощью этой программы? »
|
Такой функциональности в данной программе нет, она позволяет только визуально оценить место. Ищите альтернативу.
|
DJ Mogarych |
05-05-2025 11:59 3037723 |
Ещё один вариант на Powershell v5:
Код:
# Корень с каталогами пользователей
$users = dir "c:\users" -Directory
# Файл отчёта
$reportFile = "c:\temp\$(get-date -f yyyy-MM-dd-HH-mm-ss) Отчёт по профилям пользователей.csv"
function Measure-Folder ($path,$displayname) {
if (test-path $path) {$size = ((dir $path -file -recurse |select -expand length |measure -Sum).sum / 1mb).ToString("0.00")}
else {$size = "Отказано в доступе"}
"$($path.Split('\')[-2]);$displayname;$size"
}
$report = foreach ($user in $users) {
Measure-Folder -path "$($user.fullname)\desktop" -displayname "Рабочий стол"
Measure-Folder -path "$($user.fullname)\downloads" -displayname "Загрузки"
Measure-Folder -path "$($user.fullname)\videos" -displayname "Видео"
}
# Сохранение
"Имя пользователя;Папка;Размер (МБ)" > $reportFile
$report >> $reportFile
Примерный вывод (формат CSV):
Код:
Имя пользователя;Папка;Размер (МБ)
Default.migrated;Рабочий стол;Отказано в доступе
Default.migrated;Загрузки;Отказано в доступе
Default.migrated;Видео;Отказано в доступе
user1;Рабочий стол;6424,75
user1;Загрузки;29793,81
user1;Видео;30215,31
Public;Рабочий стол;0,01
Public;Загрузки;1,38
Public;Видео;0,00
RDV GRAPHICS SERVICE;Рабочий стол;Отказано в доступе
RDV GRAPHICS SERVICE;Загрузки;Отказано в доступе
RDV GRAPHICS SERVICE;Видео;Отказано в доступе
Файл без проблем импортируется в Excel или LibreOffice.
Можно вообще поставить модуль ImportExcel и выгружать в xlsx напрямую.
|
Время: 02:44.
© OSzone.net 2001-