使用任务计划程序运行时,我的 PowerShell 脚本不会保存到文件;我需要指定特定参数吗?

使用任务计划程序运行时,我的 PowerShell 脚本不会保存到文件;我需要指定特定参数吗?

我有一个脚本,可以下载临时 Excel 文件,将其部分内容复制到新文件,然后将其保存到网络上的特定位置。

问题是新文件从未创建/保存。如果我在本地运行脚本(通过 cmd.exe、PowerShell 或PowerShell ISE),它将在本地或网络上保存文件。如果我尝试通过计划或通过任务计划程序按需运行脚本,则会创建临时文件,但永远不会创建或保存最终文档。我需要传递特定参数吗,或者我可能做错了什么?这是我当前正在使用的命令:

    powershell.exe -file C:\path\to\my\powershell\script\thescript.ps1

由于它调用环境变量和其他与脚本位置相关的变量,因此我还将“开始于”设置为

    C:\path\to\my\powershell\script\

我曾尝试使用

    \\MYSERVER\Path\To\Directory\file.xlsx

作为网络上文件的位置(正如这里建议的那样),但是这也不起作用。

答案1

脚本在您运行时会起作用,因为您拥有目标位置的权限。默认情况下,计划任务以本地系统用户身份运行。

为此,您应该在您的域中创建一个新的专用用户,赋予其完成此任务所需的确切权限(仅此而已),并将您的计划任务配置为以该用户的身份运行。

答案2

如何在 powershell 脚本中指定参数 (您可以发布包含相关部分的片段吗)?double quotes从 调用它时通常需要大约参数Task Scheduler

如果从 调用该脚本,它是否可以运行Powershell command prompt

问题可能会有点帮助。虽然不是完全一样,但我敢打赌这是一个类似的解决方案。

这里是另一篇可能有助于解决此问题的 TechNet 文章。简要摘要:

Found the answer to this - enclosing my entire arguments in double quotes and then my parameters in single quotes ensured that the correct values were being passed to my parameters.

相关内容