通过任务计划程序执行的Powershell脚本不使用参数

通过任务计划程序执行的Powershell脚本不使用参数,powershell,arguments,taskscheduler,Powershell,Arguments,Taskscheduler,我希望你们这些天才今天能帮我。我不是PowerShell的专家,我只是用它来自动化一些任务,让生活更轻松。我尝试自动化的一件事是每天向那些密码将在14天内过期的员工发送密码提醒。我编写的脚本(NewPasswordChange.ps1)在我通过PowerShell运行时可以完美地工作,但在放入任务调度器时不会运行。请让我知道我做错了什么 操作:启动程序 程序/脚本:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 添加参数:-文件

我希望你们这些天才今天能帮我。我不是PowerShell的专家,我只是用它来自动化一些任务,让生活更轻松。我尝试自动化的一件事是每天向那些密码将在14天内过期的员工发送密码提醒。我编写的脚本(NewPasswordChange.ps1)在我通过PowerShell运行时可以完美地工作,但在放入任务调度器时不会运行。请让我知道我做错了什么

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


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

只有powershell理解单引号。从常规命令行使用时,它支持它_support@COMPANY.com例如,将被解释为3个参数:

  • 'IT
  • 支持
  • 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"
    

    只有powershell理解单引号。从常规命令行使用时,它支持它_support@COMPANY.com例如,将被解释为3个参数:

  • 'IT
  • 支持
  • 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"
    

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