我有一个脚本,可以下载临时 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.