2015-11-13 117 views
1

我在嘗試在Azure角色中設置啓動任務時遇到困難。 最終目標是禁用RC4密碼以及其他SSL配置。在我的(VS2012Express)項目(溶液中的部分實現以下這裏SO另一個答案,導致我https://gist.github.com/sidshetye/29d6d48dfa0c2f5488a4)我創建了一個文件STARTUP.CMD像這樣:啓動任務未在Azure雲服務角色上運行

# Execute powershell command to disable RC4 and imporve SSL security settings 
ECHO Batch started >> "StartupLog.txt" 2>&1 
PowerShell -ExecutionPolicy Unrestricted .\HardenSSL.ps1 >> log- HardenSSL.txt 2>&1 
EXIT /B 0 

HardenSSL.ps1是從以前的鏈接PowerShell腳本。 .cmd和.ps1腳本都放置在應用程序根目錄中,標記爲「內容」,屬性設置爲「CopyLocal = Always」。

在我的服務定義,我把這個:

<Startup> 
    <Task commandLine="Startup.cmd" executionContext="elevated" taskType="background"></Task> 
</Startup> 

現在,當我將應用程序部署到Azure中, 「無」 發生。我將角色實例配置爲允許連接到本機的遠程桌面。我驗證了發佈的腳本,並且沒有日誌文件,仍然啓用RC4。我試圖手動運行.cmd,機器運行腳本完成,禁用RC4並重新啓動。所以這些腳本實際上是「正確的」。

的問題是,該腳本沒有得到啓動時解僱了。我可能是錯的,但我沒有看到任何與Windows事件相關的東西。實際上,服務器現在保留所有配置,但我必須確保腳本得到執行,以防我必須發佈到新實例/雲服務。

我也試過: 1.將腳本對孩子目錄 2.創建其他2「更簡單」。加利福尼亞剛剛創建「腳本啓動」,以排除相關.CMD調用問題日誌文件PowerShell腳本。 這些腳本都沒有執行。

希望我已經十分清楚,任何幫助,將不勝感激。

謝謝你在前進,

阿爾貝託

更新1

通過各種討論閱讀,我錯過了一個非常重要的事情:該腳本文件實際上是發表在2個不同的地方,一個是內/ bin文件夾。例如,我將腳本放置在項目的/ StartupScripts文件夾中,當通過遠程桌面連接到Azure服務器時,我在「approot/StartupScripts」和「approot/bin/StartupScripts」中找到腳本, 。

的實際執行的腳本是那些放在「bin」文件夾內。真正的問題是我在.cmd裏面可能存在一個路徑問題,因爲我現在發現了一個錯誤的執行日誌。現在

我會盡量在此處進行更改和更新的問題上左右。

+0

所有的路徑是否正確?該文件是否出現在服務器上的批處理文件夾中,並且您是否嘗試從批處理腳本執行它,如下所示:'%RoleRoot%\ approot \ HardenSSL.ps1' –

+0

用我發現的內容更新了問題,好像是一個問題確實有一條路。要測試它。 – Alberto

回答

0

好的。

最終確實是我的Startup.cmd文件中存在路徑問題:如果啓動任務指向子文件夾,則無法找到。\ HardenSSL.ps1。

的解決方案是將兩者STARTUP.CMD和HardenSSL.ps1文件的應用程序根目錄,調用PowerShell腳本和所有運作良好時刪除「 \」的一部分。

無論如何,我想建議任何人來接這個其他的解決方案,我在堆棧exchage發現: https://security.stackexchange.com/a/79957

它鏈接到NuGet包,做同樣的事情,因爲我的鏈接的github上找到腳本在原來的帖子裏,只是「更好」;主要表現在:

    密碼套件對SSLLabs
  • 保留的Internet Explorer 8在Windows XP(可惜還是對我們來說是必要的)
SSL支持
  • 更好的配置,與ForwardSecrecy支持所有參考瀏覽器

    阿爾貝託。