我正在输出一个PowerShell脚本的结果,通过交换通过电子邮件发送给我的HTML文件,我需要让脚本停止parsing结果到相同的电子邮件,并在每次运行创build一个新的电子邮件。 我已经尝试了不同的主题行,但仍然会parsing到相同的电子邮件地址。
$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
你说你正在邮寄一个“文件”,并且在你发布的代码中有名称为“file”的variables。 然而,在那个代码中没有文件相关的活动。 当你需要一个数组的时候,你还得到了$ comps作为一个string。 感觉这个代码在发布之前已经被修改了。 有一段时间可以发布缩写代码,但是当你这样做的时候,你需要仔细的去做。
如果您真的邮寄了一个文件,并且每天都附加到相同的文件,那么可能会导致您描述的问题。 确保每天都擦除该文件(如果是这种情况),或者每天使用YearMonthDay或其他名称命名该文件。
如果我错了,并且确实没有文件,请在脚本的顶部添加$t_file_content = $null 。
编辑1
尝试在脚本的顶部添加$body_main = $null 。