The script you posted would have never worked.
Your Select-Object on line 21 is incomplete, and line 22 is not valid PowerShell.
I'd try this:
############### script to get all mailbox databases and list users and size of each mailbox and items count.
#list servers in c:\server.csv ie server1,server2,server3
$Excel = New-Object -Com Excel.Application
$Excel.DisplayAlerts = $False
$Excel.visible = $True
$Excel = $Excel.Workbooks.Add(1)
$Sheet = $Excel.WorkSheets.Item(1)
$Sheet.Cells.Item(1,1) = "Database Name"
$Sheet.Cells.Item(1,2) = "Name"
$Sheet.Cells.Item(1,3) = "Mailbox Size"
$Sheet.Cells.Item(1,4) = "Item Count"
$WorkBook = $Sheet.UsedRange
$intRow = 2
$MBdatabase = import-csv c:\server.csv
foreach($row in $MBdatabase)
{
$colitems = get-mailboxserver -Identity $MBdatabase| get-mailboxstatistics |where {$_.TotalItemSize -gt 0mb}
foreach ($obj in $colitems)
{
if($error.count -gt 0){
Write-host "Database not present"
$Sheet.Cells.Item($intRow,1) = $obj.Name
$Sheet.Cells.Item($intRow,2) = Write-Output "Server not avail"
$error.clear()
$intRow = $intRow + 1
}
else
{
$Sheet.Cells.Item($intRow,1) = $obj.servername +"\"+ $obj.storagegroupname +"\"+ $obj.Databasename
$Sheet.Cells.Item($intRow,2) = $obj.displayname
$Sheet.Cells.Item($intRow,3) = $obj.MBSize
$Sheet.Cells.Item($intRow,4) = $obj.ItemCount
$intRow = $intRow + 1
$WorkBook.EntireColumn.AutoFit()
}
}
} Note that it is untested.
Karl