AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 777005
Accepted
JJJJNR
JJJJNR
Asked: 2016-05-17 00:49:55 +0800 CST2016-05-17 00:49:55 +0800 CST 2016-05-17 00:49:55 +0800 CST

脚本解析结果到同一封电子邮件

  • 772

我正在将 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
windows powershell
  • 1 1 个回答
  • 74 Views

1 个回答

  • Voted
  1. Best Answer
    Clayton
    2016-05-18T09:23:38+08:002016-05-18T09:23:38+08:00

    您说您正在邮寄一个“文件”,并且您发布的代码中有名为“文件”的变量。然而,该代码中没有与文件相关的活动。当它需要是一个数组时,您还可以将 $comps 作为字符串。感觉这个代码在发布之前已经被修改过。有时会发布缩写代码,但是当您这样做时,您需要谨慎行事。

    如果您真的是邮寄一个文件,并且每天都附加到同一个文件,那可能会导致您描述的问题。如果是这种情况,请确保每天都删除该文件,或者通过使用 YearMonthDay 或其他名称来每天编写一个新文件。

    如果我弄错了并且确实没有文件,请尝试$t_file_content = $null在脚本顶部添加。

    编辑 1
    尝试$body_main = $null在脚本顶部添加。

    • 1

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve