我有有效的PS脚本,用于获取有关我的多维数据集处理日期和大小等的信息。因此,现在我正尝试发送将输出传递给变量的邮件。.到目前为止,没有人能在这里为我提供帮助。 ..感谢您的帮助。
enter code here
try{
$asServer="server";
$loadInfo =
[Reflection.Assembly]::LoadWithPartialName(“Microsoft.AnalysisServices”)
$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($asServer)
if ($server.name -eq $null) {
Write-Output (“Server ‘{0}’ not found” -f $asServer)
break
}
$sum=0
foreach ($d in $server.Databases)
{
Write-output( “Database: {0}; Status: {1}; Size: {2}MB;Last Schema Update:
{3};Last Cube Processed:{4} ” -f $d.Name, $d.State,
($d.EstimatedSize/1024/1024).ToString(“#,##0”),$d.LastSchemaUpdate,
$d.LastProcessed )
#$output = Write-output( “Database: {0}; Status: {1}; Size: {2}MB;Last
Schema Update:{3};Last Cube Processed:{4} ” -f $database.Name,
$server.State,
($server.EstimatedSize/1024/1024).ToString(“#,##0”),
$server.LastSchemaUpdate, $server.LastProcessed )
#$sum=$sum+$d.EstimatedSize/1024/1024
$cube ="find the cube processing
information.-$($server.Name),-$($server.LastProcessed)"
}
-ErrorAction Stop
}
catch{
$ErrorMessage = $_.Exception.Message
#Write-Host "Query executed"
Send-MailMessage -From 'alert@mail.com' -To 'user1@mail.com' -Subject
'Cube Refresh Status' -body $output -SmtpServer 'smtp.mailserver.com'
}
答案 0 :(得分:0)
首先,您尝试在“捕获”爪内发送电子邮件,因此,如果脚本运行没有问题,则Send-MailMessage的部分将永远不会运行。
我还建议您添加一条包含一些信息的写主机行,以使您知道正确的行,例如:
Write-Host "Reached Here"
那么您可以确定已经到达此行,并且可以从那里进行调试。 您还可以使用PowerShell ISE的调试选项逐行运行。
或者仅使用F8逐行运行脚本
答案 1 :(得分:0)
问题已解决-
new code changes here --
$output=Write-output( “Database: {0};Size: {2}MB;Last Schema Update:{3};Last Cube
Processed:{4} ” -f $d.Name, $d.State,($d.EstimatedSize/1024/1024).ToString(“#,##0”),
$d.LastSchemaUpdate, $d.LastProcessed ) |Out-File **c:\temp\output.txt -Append**
并为外文件添加了变量
$out_file="C:\temp\output.txt"
$body = Get-Content $out_file | Out-String
,并如下更改了-body参数。 -body $ body 并且必须使用$ body变量。
当然,可以对代码进行更多的增强。