Ek probeer 'n lys van alle Exchange-rekeninge kry, formateer hulle in dalende volgorde vanaf die grootste posbus en plaas daardie data in 'n e-pos in HTML-formaat om aan myself te e-pos. Tot dusver kan ek die data kry, dit na 'n tekslêer druk, asook 'n e-pos skep en vir myself stuur. Dit lyk net nie of ek alles bymekaar kry nie. Ek het probeer om ConvertTo-Html te gebruik, maar dit lyk asof dit net data per e-pos terugstuur soos "pageFooterEntry" en "Microsoft.PowerShell.Commands.Internal.Format.AutosizeInfo" teenoor die werklike data. Ek kan dit kry om vir my die regte data te stuur as ek dit nie vir ConvertTo-Html sê nie, laat dit net die data na 'n tekslêer toe stuur en daaruit trek, maar dit het alles saam gehardloop sonder enige formatering. Ek hoef nie die lêer te stoor nie, ek wil net graag die opdrag uitvoer, die data kry, dit in HTML plaas en dit aan myself pos.Hier is wat ek tans het:

#Connects to Database and returns information on all users, organized by Total Item Size, User
$body = Get-MailboxStatistics -database "Mailbox Database 0846468905" | where {$_.ObjectClass -eq “Mailbox”} | Sort-Object TotalItemSize -Descending | ft @{label=”User”;expression={$_.DisplayName}},@{label=”Total Size (MB)”;expression={$_.TotalItemSize.Value.ToMB()}}  -auto | ConvertTo-Html

#Pause for 5 seconds for Exchange 
write-host -foregroundcolor Green "Pausing for 5 seconds for Exchange"
Start-Sleep -s 5


$toemail = "[email protected]" # Emails report to this address.
$fromemail = "[email protected]" #Emails from this address.
$server = "Exchange.company.com" #Exchange server - SMTP.


#Email the report.
$email = New-Object System.Net.Mail.MailMessage
$email.IsBodyHtml = $True
$email.To.Add($toemail)
$email.From = $fromemail
$email.Subject = "Exchange Mailbox Sizes"
$email.Body = $body
$client = New-Object System.Net.Mail.SmtpClient $server
$client.UseDefaultCredentials = $true
$client.Send($email)

Enige gedagtes sal nuttig wees, dankie!

answer

jy kan myne probeer wat vir my werk. Jy moet al die veranderlikes stel, wat almal selfdokumenteer.

$body = "$(cat $file)"

send-MailMessage -SmtpServer $smtpserver -To $to -From $from -Subject $subject -Body $body -BodyAsHtml -Priority high

Dankie vir jou hulp hierbo. Wat jy voorgestel het, het gedeeltelik goed vir my gewerk, maar ek het 'n paar ander formateringsprobleme gehad wat ek uiteindelik ook uitgepluis het. Net om die volgende persoon te help wat kyk plaas ek ook my eindresultaat/konfigurasie. Dit is dalk nie so doeltreffend soos dit kan wees nie, maar dit lyk of dit werk vir wat ek wou hê! Weereens dankie!

    #Connects to Database and returns information on all users, organized by DisplayName, ItemCount, TotalItemSize
    $body = Get-MailboxStatistics -database "Mailbox Database 0846468905" | where {$_.ObjectClass -eq “Mailbox”} | Sort-Object TotalItemSize -Descending  | ConvertTo-Html -property DisplayName, ItemCount, TotalItemSize

    #Pause for 3 seconds for Exchange to write the file.
    Start-Sleep -s 3

    $toemail = "[email protected]" #Emails report to this address.
    $fromemail = "[email protected]" #Emails report from this address.
    $server = "Exchange.company.com" #Exchange server - SMTP.

    $HTMLmessage = @"
    <font color=""black"" face=""Arial, Verdana"" size=""3"">
    <br>
    <body BGCOLOR=""white"">
    $body
    </body>
    "@ 

    #Email the report.
    Send-MailMessage -smtpServer $server -to $toemail -from $fromemail -subject "Exchange Mailbox Sizes" -body $HTMLmessage -BodyAsHtml -priority High