我正在将 powershell 脚本的结果输出到通过交换通过电子邮件发送给我的 html 文件,我需要让脚本停止将结果解析到同一电子邮件并在每次运行时创建一个新电子邮件。我尝试了不同的主题行,但它仍会解析到相同的电子邮件地址。
$Subject = "Win7 Printer Report from script"
$ToAddress = "[email protected]"
$FromAddress = "[email protected]"
send-mailmessage -to $ToAddress -from $FromAddress -subject $Subject -smtpserver vmserver.server.com -body $body -BodyAsHtml
这是完整的脚本。
Import-Module ActiveDirectory
$comps = "12345"
foreach ($comp in $comps)
{
$count++
$printers = get-printer -computername $comp
foreach ($printer in $printers)
{
$p_name = $printer.name
$p_shared = $printer.shared
$p_published = $printer.published
$p_sharename = $printer.sharename
$p_drivername = $printer.drivername
$drivStr = $null
$drivers = get-printerdriver $p_drivername -computername $comp
foreach ($driver in $drivers)
{
$d_environment = $driver.PrinterEnvironment
$drivStr += "$d_environment | "
}
$t_file_content += "<tr class=greyback><td>$comp</td><td>$p_name</td><td>$p_shared</td><td>$p_published</td><td>$p_sharename</td><td>$p_drivername</td><td>$drivStr</td></tr>"
}
}
$t_file_header = "<div class=ibmtitle>Win7 Printer Report</div><table><tr class=blueback><td>Computer</td><td>Name</td><td>Shared</td><td>Published</td><td>Share Name</td><td>Driver Name</td><td>Driver Type</td></tr>"
$t_file_footer = "</table><br>"
$t_file = $t_file_header + $t_file_content + $t_file_footer
$endDTM = (Get-Date)
$ts = ($endDTM-$startDTM)
$ts_display = '{0:00}h {1:00}m {2:00}s' -f $ts.Hours,$ts.Minutes,$ts.Seconds
$ScriptPath = $MyInvocation.MyCommand.Path
$host_name = $env:COMPUTERNAME
$infobox = "<br><table style='width:100%'><tr class=greyback><td><b>Script:</b> $ScriptPath<br>"
$infobox = $infobox + "<b>Server:</b> $host_name<br>"
$infobox = $infobox + "<b>Script run time:</b> $ts_display<br>"
$infobox = $infobox + "<br>"
$infobox = $infobox + "<b>Description:</b> Checks printers on selected servers.<br>"
$infobox = $infobox + "<br>"
$infobox = $infobox + "<b>Computers:</b> $count<br>"
$infobox = $infobox + "<br>"
$infobox = $infobox + "</td></tr></table>"
$html_header = "<html><head>" + $a + "</head><body>"
$body_main = $body_main + $t_file + $infobox
$html_footer = "</body></html>"
$body = $html_header + $body_main + $html_footer
$Subject = "Win7 Printer Report"
$ToAddress = "[email protected]"
$FromAddress = "[email protected]""
send-mailmessage -to $ToAddress -from $FromAddress -subject $Subject -smtpserver vm.lol.com -body $body -BodyAsHtml
您说您正在邮寄一个“文件”,并且您发布的代码中有名为“文件”的变量。然而,该代码中没有与文件相关的活动。当它需要是一个数组时,您还可以将 $comps 作为字符串。感觉这个代码在发布之前已经被修改过。有时会发布缩写代码,但是当您这样做时,您需要谨慎行事。
如果您真的是邮寄一个文件,并且每天都附加到同一个文件,那可能会导致您描述的问题。如果是这种情况,请确保每天都删除该文件,或者通过使用 YearMonthDay 或其他名称来每天编写一个新文件。
如果我弄错了并且确实没有文件,请尝试
$t_file_content = $null
在脚本顶部添加。编辑 1
尝试
$body_main = $null
在脚本顶部添加。