使用Powershell进行应用程序部署

时间:2009-03-25 16:55:12

标签: deployment powershell

我开发了一个Powershell脚本来将更新部署到一套应用程序中;包括SQL Server数据库更新。

接下来我需要一种在100多台服务器上执行这些脚本的方法;无需手动连接到每个服务器。 “Powershell v2 with remoting”不是一个选项,因为它仍然在CTP中。

使用WinRM的Powershell v1看起来最有希望,但我无法从我的脚本中获得反馈。脚本执行,但我需要了解异常。脚本创建一个日志文件,有没有办法将日志文件的内容发送回“客户端”(本地计算机进行远程调用)?

2 个答案:

答案 0 :(得分:1)

快速回答是否定的。长版本是可能的,但会涉及很多黑客攻击。我去年使用PowerShell 2开发了非常相似的部署脚本/系统。远程处理功能是我们忍受CTP状态的主要原因。使用WinRM的PowerShell 1充其量只是如你所说的那样,除了ok或者失败之外没有真正的反馈。

我考虑使用PsExec考虑​​使用的替代方案,这非常非标准且可能被防火墙阻止。另一种方法涉及使用系统管理工具,如MS的系统中心,但这只是一个小钉子的大锤子。所以你必须挑选毒药......

答案 1 :(得分:0)

只需对此进行评论:捕获PowerShell输出的最简单方法是使用start-transcript cmdlet将控制台输出传递给文件。我们在所有脚本的开头都有一个小片段,它将每个脚本的控制台输出日志文件发送到中央文件共享,并使用脚本名称和日期命名日志文件,以便我们了解发生了什么。将所有这些日志文件传输到数据库中进行进一步处理也不是很难。可能不会解决你所有的问题,但肯定会帮助“获取数据”部分。

最好的问候, 特朗德