执行内嵌powershell脚本

执行内嵌powershell脚本,powershell,command,inline,Powershell,Command,Inline,我正在尝试从任务计划程序调用内联powershell脚本,以便在触发特定事件时发送电子邮件。我无法在任务计划程序操作窗口中使用本机“发送电子邮件”操作,因为SMTP服务器需要SSL,无法在操作窗口中指定。因此,我希望“启动一个程序”并调用一些东西来发送电子邮件,但我希望尽可能避免使用第三方应用程序,如sendEmail,因此希望能够调用类似于以下内容的内嵌powershell脚本 将“程序/脚本”字段设置为powershell,将“参数”字段设置为: -命令“{发送邮件消息-从“名称”-发送到”

我正在尝试从任务计划程序调用内联powershell脚本,以便在触发特定事件时发送电子邮件。我无法在任务计划程序操作窗口中使用本机“发送电子邮件”操作,因为SMTP服务器需要SSL,无法在操作窗口中指定。因此,我希望“启动一个程序”并调用一些东西来发送电子邮件,但我希望尽可能避免使用第三方应用程序,如sendEmail,因此希望能够调用类似于以下内容的内嵌powershell脚本

将“程序/脚本”字段设置为
powershell
,将“参数”字段设置为:

-命令“{发送邮件消息-从“名称”-发送到”name@domain.com“-Subject“Test Subject”-Body“Test Body at$(获取日期-格式为“dd/MM/yyyy”)。”-SmtpServer“smtp.domain.com”-usesl}”

由于嵌套引号等原因,这显然不起作用,因此我一直在尝试命令提示符中的不同变体,但我无法确定需要转义哪些字符以及如何转义它们

任何帮助都将不胜感激。

这应该可以:

powershell -Command 'Send-MailMessage -From "Name <name@domain.com>" -To "name@domain.com" -Subject "Test Subject" -Body "Test body at $(Get-Date -Format "dd/MM/yyyy")." -SmtpServer "smtp.domain.com" -UseSSL'
powershell-命令“发送邮件消息-从“名称”-发送到”name@domain.com“-Subject“Test Subject”-Body“Test Body at$(获取日期-格式为“dd/MM/yyyy”)。”-SmtpServer“smtp.domain.com”-usesl”
您可以在双引号周围使用单引号,并且不需要在命令周围使用花括号

  • 只需查看“powershell/?”的示例部分
  • PowerShell-命令“&{Get EventLog-LogName Application}”


  • 看看如何使用引号
    PowerShell-命令&{Send MailMessage-从'Name'-发送到'name@domain.com“-Subject'Test Subject'-Body({0}处的测试主体)。-f(获取日期-格式'dd/MM/yyyy')-SmtpServer'smtp.domain.com'-usesl}

    未提及其可能的副本,但也可能需要通过认证。很少能够在没有身份验证的情况下发送到smtp服务器。此命令只是在控制台上打印字符串,而不是执行它。谢谢,太好了。我忘了说的一件事是,我也在尝试在邮件正文中添加换行符-我通常会使用“r'n”(由于SO的语法突出显示,这里必须使用单引号而不是实际的反勾号字符),但反勾号字符被视为文字,因为它们位于单引号字符串中。你知道我该怎么做吗?