Powershell脚本在远程处理时可以工作,但不能作为Azure启动任务

时间:2013-01-18 15:26:25

标签: powershell azure command-line permissions zip

我有一个保存在.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,这是最高权限级别。有人有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

更改命令,以便将命令的输出转储到文件中。这样的事情应该有效

<YOUR_COMMAND> > out.log 2> err.log

再次运行任务并检查日志中的输出。

此外,您使用的是相对路径而不是绝对路径。计划任务可能以Windows系统文件夹作为其工作目录运行,因此您可能会收到权限错误。尝试使用您创建的目录的绝对路径。