Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - Вывод информации о пространстве.

Ответить
Настройки темы
2012 R2 - Вывод информации о пространстве.

Ветеран


Сообщения: 1260
Благодарности: 10

Профиль | Отправить PM | Цитировать


Доброго времени суток.
Поступила задача от руководства, сделать им распечатку по каждому пользователю, сколько занимает место рабочий стол, папка загрузки и папка видео на терминальном сервере. Т.е. такого вида
user1
Рабочий стол: 10мб
Загрузки: 20мб
Видео: 30 мб
user2
...

Пользователей более 500 и я ручками просто замучаюсь это делать.
Может есть какой лайф хак и данные занести как-то в эксель таблицу?

Подскажите плз, опытные админы.

Отправлено: 17:03, 29-04-2025

 

Аватара для NickM

Ветеран


Contributor


Сообщения: 4621
Благодарности: 1108

Профиль | Отправить PM | Цитировать


Как узнать размер каталога с помощью PowerShell?

Отправлено: 19:05, 29-04-2025 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Anton04

Ветеран


Сообщения: 2200
Благодарности: 414

Профиль | Отправить PM | Цитировать


poisonkit,

ПО WinDirStat подойдёт?

P.S.
Цитата poisonkit:
Загрузки: 20мб »
Вот эту папка точно на автоматическую очистку на терминальном сервере однозначно.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 09:24, 30-04-2025 | #3


Ветеран


Сообщения: 1260
Благодарности: 10

Профиль | Отправить PM | Цитировать


Цитата Anton04:
ПО WinDirStat подойдёт? »
Я ей как раз пользуюсь, но не нашел функции, что-бы в таблицу выводил результат. Подскажите, как это сделать с помощью этой программы?

Цитата NickM:
Как узнать размер каталога с помощью PowerShell? »
Не совсем понял, как можно реализовать под текущую задачу (

Отправлено: 15:55, 30-04-2025 | #4


Аватара для NickM

Ветеран


Contributor


Сообщения: 4621
Благодарности: 1108

Профиль | Отправить PM | Цитировать


Цитата poisonkit:
Не совсем понял, как можно реализовать под текущую задачу ( »
Что именно не поняли?

Как модифицировать предложенный сценарий для подкаталогов:
Цитата poisonkit:
рабочий стол, папка загрузки и папка видео »
, или прочитать, понять направление и сделать по своему, или что?

Отправлено: 16:11, 30-04-2025 | #5


Аватара для NickM

Ветеран


Contributor


Сообщения: 4621
Благодарности: 1108

Профиль | Отправить PM | Цитировать


Цитата 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"

Последний раз редактировалось NickM, 01-05-2025 в 12:35.


Отправлено: 21:34, 30-04-2025 | #6


Аватара для Anton04

Ветеран


Сообщения: 2200
Благодарности: 414

Профиль | Отправить PM | Цитировать


Цитата poisonkit:
Я ей как раз пользуюсь, но не нашел функции, что-бы в таблицу выводил результат. Подскажите, как это сделать с помощью этой программы? »
Такой функциональности в данной программе нет, она позволяет только визуально оценить место. Ищите альтернативу.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 08:51, 01-05-2025 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6678
Благодарности: 1560

Профиль | Отправить PM | Цитировать


Ещё один вариант на 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 напрямую.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 05-05-2025 в 13:00. Причина: выделил сохранение в конец, пофиксил определение отсутствия доступа

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:59, 05-05-2025 | #8



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - Вывод информации о пространстве.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Вывод информации по шарам ejik_off Скриптовые языки администрирования Windows 1 21-04-2021 15:05
CMD/BAT - [решено] вывод информации Ubiquiti Скриптовые языки администрирования Windows 14 14-02-2016 23:42
CMD/BAT - вывод информации о переменных среды sandrmor Скриптовые языки администрирования Windows 1 04-06-2015 00:16
PowerShell - вывод информации через цикл firstarey Скриптовые языки администрирования Windows 3 30-03-2015 13:58
Интерфейс - [решено] Изменение подачи информации о дисковом пространстве в окне "Компьютер" Amiranchik Microsoft Windows 7 8 20-10-2012 17:11




 
Переход