1

我有一个保存在.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 启动任务运行脚本时:脚本的第一部分有效。文件已下载。解压缩的脚本的第二部分不运行。

当我在远程进入虚拟机时通过命令行运行脚本时:整个脚本运行。

因此我知道这不是语法错误。我能想到的上述两种情况的唯一区别是权限问题。但是,我正在运行 powershell,并将 -ExecutionPolicy 设置为 Bypass,这是最高权限级别。有人有什么想法吗?谢谢!

4

1 回答 1

0

更改命令,以便将命令的输出转储到文件中。像这样的东西应该工作

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

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

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

于 2013-01-23T10:16:05.860 回答