我有一个保存在.cmd
文件中的powershell脚本,该文件从网上下载文件然后解压缩。我的azure web角色在启动时执行它。这是脚本:
powershell -ExecutionPolicy Bypass -c $(New-Object Net.WebClient).DownloadFile('URL.zip', 'FILE.zip') ;
(New-Object -com shell.application).namespace('c:\FOLDER').Copyhere((New-Object -com shell.application).namespace('FILE.zip').items())
当我通过Azure启动任务运行脚本时: 脚本的第一部分有效。该文件已下载。解压缩的脚本的第二部分不会运行。
当我远程登录VM时,通过命令行运行脚本时: 整个脚本运行。
因此我知道这不是语法错误。我可以在上述两种情况之间考虑的唯一区别是权限问题。但是,我正在运行powershell,并将-ExecutionPolicy设置为Bypass,这是最高权限级别。有人有什么想法吗?谢谢!
答案 0 :(得分:0)
更改命令,以便将命令的输出转储到文件中。这样的事情应该有效
<YOUR_COMMAND> > out.log 2> err.log
再次运行任务并检查日志中的输出。
此外,您使用的是相对路径而不是绝对路径。计划任务可能以Windows系统文件夹作为其工作目录运行,因此您可能会收到权限错误。尝试使用您创建的目录的绝对路径。