使用windows任务计划程序运行powershell脚本时未生成日志文件

使用windows任务计划程序运行powershell脚本时未生成日志文件,powershell,Powershell,我已创建以下powershell脚本: stop-service ''3456'' start-sleep -s 60 stop-service "2354" start-sleep -s 60 Restart-computer QY34 -Force send -mailmessage -from operating.system@abc.com -To asdf@abc.com -subject test -attachment 'c:\Temp|test.log' -smtp s

我已创建以下powershell脚本:

stop-service ''3456''

start-sleep -s 60

stop-service "2354"

start-sleep -s 60

Restart-computer QY34 -Force

send -mailmessage -from operating.system@abc.com -To asdf@abc.com -subject test -attachment 'c:\Temp|test.log' -smtp server "127.0.0.1"
我已在windows任务计划程序中输入以下信息

在“操作”选项卡上

C:\windows\System32\windowspowershell\v1.0\powershell.exe

“参数”选项卡:

-文件“c:\scripts\test.ps1”*>“c:\Temp\test.log”


在通过任务计划程序运行脚本时,是否有人可以帮助我获取日志文件?

更改

-file "c:\scripts\test.ps1"*>"c:\Temp\test.log"

它应该像预期的那样工作。注意前面和后面的空白空间.< /p> 我认为问题在于Powershell将在文件输入后读取所有内容。它仍然可以工作,但由于它只是在“file”位之后停止读取,>操作符被忽略/看不到。Removing-file Powershell仍将使用位置参数查找脚本,但它还将处理>操作符并输出到文件


如果从命令行运行If,它会工作,因为在这种情况下,cmd.exe将处理输出,而不是Powershell,但不要引用我的话。

将参数从

-file "c:\scripts\test.ps1"*>"c:\Temp\test.log"

它应该像预期的那样工作。注意前面和后面的空白空间.< /p> 我认为问题在于Powershell将在文件输入后读取所有内容。它仍然可以工作,但由于它只是在“file”位之后停止读取,>操作符被忽略/看不到。Removing-file Powershell仍将使用位置参数查找脚本,但它还将处理>操作符并输出到文件


如果从命令行运行If,它会正常工作,我想是因为在这种情况下,cmd.exe将处理输出,而不是Powershell,但请不要引用我的话。

您是否尝试过从控制台运行该行。。。任务调度器将运行的整个行可能与您认为的不同。[露齿而笑]你有没有试过从控制台运行那条线路。。。任务调度器将运行的整个行可能与您认为的不同。[grin]您是对的,但值得注意的是,省略
-file
意味着
-command
(在Windows PowerShell中;在PowerShell核心中,
-file
现在是默认值)。如果不使用
&
和嵌入式引号,则仅当脚本路径恰好不包含空格时,该命令才会起作用;输出路径同上。您是正确的,但值得注意的是,省略
-file
意味着
-command
(在Windows PowerShell中;在PowerShell Core中,
-file
现在是默认值)。如果不使用
&
和嵌入式引号,则仅当脚本路径恰好不包含空格时,该命令才会起作用;输出路径同上。