Вывод размеров папок %Temp% пользователей на PowerShell
PowerShell скрипт, который выводит размеры папок AppData\Local\Temp
для всех пользователей на диске C:
, отсортированные по убыванию размера:
# Получаем список всех пользовательских профилей
$userProfiles = Get-ChildItem -Path "C:\Users" -Directory
# Создаем массив для хранения результатов
$tempFolderSizes = @()
foreach ($user in $userProfiles) {
$tempPath = Join-Path -Path $user.FullName -ChildPath "AppData\Local\Temp"
# Проверяем существование папки Temp
if (Test-Path -Path $tempPath) {
# Получаем размер папки
$folderSize = (Get-ChildItem -Path $tempPath -Recurse -File -Force -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue).Sum
# Если размер не удалось получить, устанавливаем 0
if (-not $folderSize) { $folderSize = 0 }
# Добавляем информацию в массив
$tempFolderSizes += [PSCustomObject]@{
UserName = $user.Name
TempPath = $tempPath
SizeInBytes = $folderSize
SizeInMB = [math]::Round($folderSize / 1MB, 2)
SizeInGB = [math]::Round($folderSize / 1GB, 2)
}
}
}
# Сортируем по убыванию размера и выводим результат
$tempFolderSizes | Sort-Object -Property SizeInBytes -Descending | Format-Table -AutoSize -Property UserName, SizeInMB, SizeInGB, TempPath
# Альтернативный вывод с детализацией
# $tempFolderSizes | Sort-Object -Property SizeInBytes -Descending | Out-GridView -Title "Размеры папок Temp по пользователям"
Как использовать:
-
Откройте PowerShell от имени администратора
-
Скопируйте и вставьте этот скрипт
-
Нажмите Enter для выполнения
Особенности скрипта:
-
Обходит всех пользователей в
C:\Users
-
Для каждого пользователя проверяет папку
AppData\Local\Temp
-
Вычисляет размер всех файлов в папке (рекурсивно)
-
Выводит результаты в MB и GB, отсортированные по убыванию
-
Игнорирует ошибки доступа (если они есть)
Альтернативный вывод:
Раскомментируйте строку с Out-GridView
для графического представления данных в таблице с возможностью сортировки.