启动任务未在Azure云服务角色上运行

问题描述:

我在尝试在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

好的。

最终确实是我的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支持所有参考浏览器

    阿尔贝托。