Вот сюда добавил информацию о размере виртуального диска, а ещё нарастил функцию удаления дисков профилей годичной давности, основываясь на дате изменения контейнера.
Нужно только указать актуальное значение переменной $backupdir.
# Заголовок скрипта #
[System.Console]::Title = "Перемещенные диски пользователей"
# Переменные #
$backupdir = "\\RDS\c$\Profiles\VHDXDISABLE"
$disks = (Get-ChildItem -Path $backupdir).BaseName
$dirsize = "{0:N2} Гб" -f ((Get-ChildItem $backupdir -Force -ErrorAction SilentlyContinue | Measure-Object Length -sum).sum/1Gb)
$sids = $disks -replace "UVHD-", ""
# Формирование таблицы #
$result = foreach($sid in $sids)
{
$username = (Get-ADUser -Identity $sid).Name
$disk = "UVHD-$sid.vhdx"
$size = (Get-ChildItem -Path $backupdir\$disk).Length/1MB
[PsCustomObject]@{"Имя пользователя" = $username; "Диск" = $disk; "Размер (МБ)" = $size}
}
# Вывод данных #
$result | Sort-Object -Property "Имя пользователя" | ft -AutoSize
Write-Host "Общий размер директории: $dirsize" -ForegroundColor Cyan
Write-Host
# Удаление файлов #
Write-Host "Удалить файлы старше 1 года?" -ForegroundColor Red
$choice = Read-Host "Введите Yes для удаления или закройте это окно"
switch($choice)
{
Yes
{
Clear
Write-Host "Скоро начнётся операция удаления файлов!" -ForegroundColor Red
Write-Host "Ctrl+C для отмены операции..." -ForegroundColor Red
Sleep(15)
Get-ChildItem –Path $backupdir |
Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-365))} |
Remove-Item -ErrorAction Continue -Verbose
Write-Host "Операция удаления завершена!" -ForegroundColor Green
}
default { Write-Host "Некорректный ввод варианта выбора" -ForegroundColor Red }
}
# Ожидание действия от пользователя #
Read-Host
PS: размер дисков в таблице вывода будет указан в мегабайтах, а общий объём хранилища в гигабайтах.