【问题标题】:Powershell Script via Task Scheduler Not Working with Arguments通过任务计划程序的 Powershell 脚本不使用参数
【发布时间】:2020-10-08 12:35:08
【问题描述】:

希望各位天才今天能帮帮我。我不是 PowerShell 的专家,我只用它来自动化一些任务以使生活更轻松。我试图自动化的一件事是每天提醒那些密码将在 14 天内到期的员工。我编写的脚本 (NewPasswordChange.ps1) 在我通过 PowerShell 运行时可以完美运行,但在放入任务计划程序时不会运行。请让我知道我做错了什么。

操作:启动程序 程序/脚本: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

添加参数: -File 'NewPasswordChange.ps1' -smtpServer 'COMPANY-com.mail.protection.outlook.com' -expireInDays '14' -from 'IT Support it_support@COMPANY.com ' -Logging -LogPath 'c:\logFiles'

【问题讨论】:

  • 您将邮件参数发送到 powershell.exe,而不是脚本。
  • 那么,我该如何解决呢?我使用的参数(减去 -File)正是我在 PS 中用于手动运行脚本的参数。
  • 最好在 PS 脚本中使用 Send-MailMessage 命令发送邮件,然后使用 -File 只调用脚本。

标签: powershell arguments taskscheduler


【解决方案1】:

只有 powershell 理解单引号。例如,当从常规命令行使用时,'IT Support it_support@COMPANY.com' 将被解释为 3 个参数:

  1. 'IT
  2. Support
  3. it_support@COMPANY.com'

改用双引号:

-File "NewPasswordChange.ps1" -SmtpServer "COMPANY-com.mail.protection.outlook.com" -ExpireInDays 14 -From "IT Support it_support@COMPANY.com" -Logging -LogPath "c:\logFiles"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2020-08-07
    • 2022-12-01
    • 2017-06-20
    • 1970-01-01
    相关资源
    最近更新 更多