问题描述
我正在尝试修改以下脚本以远程收集大文件列表(服务器上的前32个文件),然后将其另存为ServerName.CSV
Try
{
$scriptBlock = {
param ([string]$Path)
[Math]::Round(((robocopy /L /E /NDL /NJH /NJS /NP /NODCOPY /BYTES $Path 'NoDestination' | ForEach-Object {
[int64]([regex]'(?i)New File\s*(\d+)').Match($_).Groups[1].Value
} | Sort-Object -Descending | Select-Object -First 32 | Measure-Object -Sum).Sum / 1GB),1)
}
$results = Get-ADComputer -Filter * | Where-Object { $_.Name -like "FileServer*" } | Select-Object -Property Name | ForEach-Object {
Write-Host "Retrieving Top 32 Largest Files Size from server $($_.ComputerName).."
$size = Invoke-Command -ComputerName $_.Name -ScriptBlock $scriptBlock -ArgumentList $_.ContentPath
[PsCustomObject]@{
'Server - IP' = "$($_.Name) [$((Resolve-DnsName -Name $_.ComputerName -Type A).IPAddress)]"
'Top 32 Largest Files Size' = $size
'FileName' = #File Name
'FilePath' = #File Path / location
'FileSize' = #File Size in Gigabyte
}
}
$results | Export-Csv -Path C:\Users\$ENV:USERPROFILE\Desktop\$($_.ComputerName)-BigFiles.csv -NTI
}
Catch
{
$_ | Write-Error
}
上面的代码可以很好地获取具有特定文件名模式的远程服务器中32个大文件的总大小。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)