Я пытаюсь получить структуру папок и размер каждой папки на пути удаленного компьютера. Я могу получить структуру папок, но размер папки возвращает стандартный номер 901.00 KB независимо от любого пути к папке, который я указываю. Я вижу, что скрипт способен правильно установить путь к удаленной папке, но не размер файла/папки.Получить размер папки на удаленном сервере с помощью Powershell
Вот код, который я придумал до сих пор.
param(
[Parameter(ValueFromPipeline=$True, Mandatory=$True)]
[System.String] $ComputerName,
[Parameter(ValueFromPipeline=$True, Mandatory=$True, ValueFromPipelineByPropertyName=$true)]
[ValidateNotNullOrEmpty()]
[System.String] $Path
)
function Get-FolderSize ($_ = (get-item .)) {
Process {
$RemoteServer = @($ComputerName)
ForEach($Computer in $ComputerName) {
$ErrorActionPreference = "SilentlyContinue"
$length = Invoke-Command -ComputerName $ComputerName { (Get-ChildItem $_.fullname -recurse | Measure-Object -property length -sum).sum
} -ArgumentList $Path
$obj = New-Object PSObject
$obj | Add-Member NoteProperty Folder ($_.FullName)
$obj | Add-Member NoteProperty Length ($length)
Write-Output $obj
}
}
}
Function Class-Size($size)
{
IF($size -ge 1GB)
{
"{0:n2}" -f ($size/1GB) + " GB"
}
ELSEIF($size -ge 1MB)
{
"{0:n2}" -f ($size/1MB) + " MB"
}
ELSE
{
"{0:n2}" -f ($size/1KB) + " KB"
}
}
Get-ChildItem $Path | Get-FolderSize | Sort-Object -Property Length -Descending | Select-Object -Property Folder, Length |
Format-Table -Property Folder, @{ Label="Size of Folder" ; Expression = {Class-Size($_.Length)} }
Спасибо заранее !!
Perfect !! Спасибо. Однако, как я могу изменить, чтобы возвращать размер каждого файла в указанном мной пути к папке? Например, если я передаю путь только как «C: \», как я могу получить список папок внутри C: \ и их размер? – kay5
вы приветствуете, модификация, которую вы запрашиваете, требует больше кода, а затем несколько строк, а SO - не служба написания кода. Сначала вы должны попробовать сделать это самостоятельно, если у вас есть проблема, которую мы здесь, чтобы помочь. – Avshalom
Спасибо, Авшалом, я смог получить скрипт в соответствии с моими требованиями. Но ваш вклад очень помог мне в завершении этого. Отмечен ваш ответ. – kay5