我的PowerShell脚本从命令行运行,但不能从Task_Scheduler运行 。 这是Windows Server 2008 R2 Enterprise上的PowerShell v1。
从命令行input:
c:\> powershell -File "C:\Program Files\mystuff\foo.ps1"
我的单行PowerShell脚本运行良好 – 它复制名为* .bak的最新文件。 这是脚本,万一有用:
gci X:\backups\*.bak | Sort-Object LastWriteTime -Descending | Select-Object -first 1 | foreach { xcopy $_ z:\backups\ }
我使用相同的命令创build了一个计划任务。 脚本立即完成,结果代码为0,但脚本实际上没有做任何事情。
所以我试图看到我的脚本的输出,并改变我的计划行动:
cmd /c powershell.exe -File "C:\Program Files\mystuff\foo.ps1" > c:\ps.log
现在我看到输出:“0文件复制”
返回到命令行并再次尝试,它仍然正常工作。
计划的任务以与命令行相同的用户身份运行。 是什么使其行为有所不同?
我从使用xcopy切换到复制项目,并得到了更多的信息错误信息。 问题是Z:驱动器是映射的networking驱动器 – 并且计划的任务不能看到它。
在您的计划任务中,操作将仅为“powershell”,参数将为“。\ script.ps1”或“。\ c:\ scripts \ script.ps1”。
如果你想logging所说的PS脚本的活动,我build议你在脚本里面自己做,而不是象cmd.exe那样使用它。
哦,对不起,我误解了你的问题。 使用UNC而不是映射的驱动器。