2013-01-18 68 views
1

我有一個保存在.cmd文件中的PowerShell腳本,該文件從Web下載文件,然後將其解壓縮。我的天藍色網絡角色在啓動時執行它。這是腳本:Powershell腳本適用於遠程訪問,但不適用於Azure啓動任務

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,這是最高的權限級別。任何人有任何想法?謝謝!

+1

你能告訴我們你的服務配置中運行啓動任務的行是什麼樣的嗎? – Frans

+0

你能找到問題嗎?我有一個類似的問題,我運行一個腳本來解壓縮文件,它在我在服務器上手動運行該進程時運行,但是當自動進程運行時它不運行,它甚至不會引發異常,它只會干擾't解壓我的文件 – Jupaol

+1

@Jupaol,我相當肯定這是一個你無法繞過的權限級別。我的解決方案是讓啓動腳本啓動一個控制檯應用程序,爲我解壓縮。這樣可行。祝你好運! – carlbenson

回答

0

更改命令以便將命令的輸出轉儲到文件中。像這樣的東西應該可以工作

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

再次運行任務並檢出日誌中的輸出。

另外,您使用的是相對路徑而不是絕對路徑。計劃的任務可能與Windows系統文件夾一起作爲其工作目錄運行,因此您可能會從中獲得權限錯誤。嘗試使用您創建的目錄的絕對路徑。

相關問題