1

.cmdWebからファイルをダウンロードして解凍するPowerShellスクリプトをファイルに保存しています。私の紺碧の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の起動タスクを介してスクリプトを実行すると:スクリプトの最初の部分が機能します。ファイルがダウンロードされます。解凍するスクリプトの2番目の部分は実行されません。

VMにリモート接続したときにコマンドラインからスクリプトを実行すると、スクリプト全体が実行されます。

したがって、これは構文エラーではないことがわかります。上記の2つのケースで私が考えることができる唯一の違いは、権限の問題です。ただし、-ExecutionPolicyを最高のアクセス許可レベルであるBypassに設定してPowerShellを実行しています。誰かアイデアはありますか?ありがとう!

4

1 に答える 1

0

コマンドの出力がファイルにダンプされるようにコマンドを変更します。このようなものが動作するはずです

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

タスクを再度実行し、ログで出力をチェックアウトします。

また、絶対パスではなく相対パスを使用しています。スケジュールされたタスクは、おそらく Windows システム フォルダーを作業ディレクトリとして実行されるため、アクセス許可エラーが発生する可能性があります。作成したディレクトリへの絶対パスを使用してみてください。

于 2013-01-23T10:16:05.860 に答える