执行内联 powershell 脚本
Executing inline powershell script
我正在尝试从任务计划程序调用内联 powershell 脚本以在触发特定事件时发送电子邮件。我无法在任务计划程序操作 window 中使用本机 'Send an e-mail' 操作,因为 SMTP 服务器需要 SSL,并且无法在操作 window 中指定它。所以我正在寻找 'Start a program' 并调用一些东西来发送电子邮件,但我想尽可能避免使用 3rd 方应用程序,例如 sendEmail 所以希望能够调用类似于以下内容的内联 powershell 脚本。
将 'Program/script' 字段设置为 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 -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 /?" 的示例部分...
PowerShell -Command“& {Get-EventLog -LogName Application}”
- 看看如何使用引号。
PowerShell -Command "& {Send-MailMessage -From 'Name ' -To 'name@domain.com' -Subject 'Test Subject' -Body ('Test body at {0}.' -f (Get-Date -Format 'dd/MM/yyyy')) -SmtpServer 'smtp.domain.com' -UseSSL}"
我正在尝试从任务计划程序调用内联 powershell 脚本以在触发特定事件时发送电子邮件。我无法在任务计划程序操作 window 中使用本机 'Send an e-mail' 操作,因为 SMTP 服务器需要 SSL,并且无法在操作 window 中指定它。所以我正在寻找 'Start a program' 并调用一些东西来发送电子邮件,但我想尽可能避免使用 3rd 方应用程序,例如 sendEmail 所以希望能够调用类似于以下内容的内联 powershell 脚本。
将 'Program/script' 字段设置为 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 -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 /?" 的示例部分...
PowerShell -Command“& {Get-EventLog -LogName Application}”
- 看看如何使用引号。
PowerShell -Command "& {Send-MailMessage -From 'Name ' -To 'name@domain.com' -Subject 'Test Subject' -Body ('Test body at {0}.' -f (Get-Date -Format 'dd/MM/yyyy')) -SmtpServer 'smtp.domain.com' -UseSSL}"