最近,我加入了我的企业中的Windows团队以及我的开发人员背景(通常是Java,.NET和Web),我很快对PowerShell感兴趣。我可以看到它对于普通的旧批处理文件VB的价值......这就是为什么我想推广它的用法,并且一点一点地推动人们赞成它,除非有理由不这样做。如何在企业中使用PowerShell和PowerShell模块
部署PowerShell似乎非常简单,因为我们可以轻松批准WSUS中的相关修补程序,并通过GPO为AD集成服务器配置执行策略。
我的问题其实更多的是关于PowerShell和PowerShell模块(例如,PCSX,PowerShellPack,自制的......)的分发和使用。
对于那些你谁在你的企业已经部署的PowerShell:
你有某种标准包装为PowerShell和您在每个服务器上部署一组模块?如果你这样做,那么你如何部署新版本的已安装模块?
您是否将中央PowerShell存储库放置在您存储所有PowerShell模块的位置?如果是这样,该存储库是全局可访问还是您也同步的辅助存储库?
我非常习惯于像Maven,Ivy和其他依赖管理软件这样的工具,这就是为什么我对PowerShell在这方面提供什么有点失望。
我找到了a very nice article about this subject,可能会走相同的路径,因为它符合我的要求。
你使用WinRM吗?你是直接从工作站连接还是你有中央管理服务器?您是否将WinRM的访问权限限制在这些管理服务器上?
您是否在非托管环境中使用WinRM(服务器不在AD域中)?你如何配置WinRM?
我们有一个网络区域,其中的服务器不是AD域的一部分,因此我不能依赖于Kerberos身份验证的WinRM。
全球范围内,您的经验是什么,您对结果满意吗?
编辑: 关于第二个问题,我们已经决定把中央存储库到位。
这个想法将有一个主版本库,它将在版本控制(GIT)下,并且我们将成为唯一拥有写入权限的版本库。
从该存储库中,我们将使用类似rsync的工具(在我们的例子中将是robocopy)将模块复制到其他辅助存储库(它将是只读副本)。只有那些存储库可以被客户端访问(我们只需要更新这些客户端上的PSModulePath以确保他们可以访问存储库)。
我们也将阶段我们的版本,因此在存储库,将有多个版本可用:开发,集成和生产。
在使用包含Perl Package Manager的Perl之后,我分享了您对PowerShell内置的模块分发管道缺乏的失望。事实上,我会把它作为V3的第一个功能请求。 – 2011-03-17 12:18:04
我完全同意你乍得。如果微软可以将像CPAN这样的在线模块库放到Perl中,或者Maven Central for Java,那么它肯定会帮助PowerShell社区。 +1点,如果他们提出一个企业(最好是免费的)工具:) – dSebastien 2011-03-30 19:11:10