最近,我加入了我的企业中的Windows团队和我的开发人员背景(一般来说是Java,.NET和Web),我很快就对PowerShell感兴趣。我可以看到它对普通旧批处理文件VB的价值......这就是为什么我想推广它的用法,并且一点一点地推动人们支持它,除非有其他原因不这样做。
部署PowerShell似乎非常简单,因为我们可以轻松批准WSUS中的相关补丁,并通过GPO为AD集成服务器配置执行策略。
我的问题实际上更多是关于PowerShell和PowerShell模块的分发和使用(例如,PCSX,PowerShellPack,自制,......)。
对于那些已经在企业中部署过PowerShell的人:
您是否为PowerShell提供了某种标准软件包,并在每台服务器上部署了一组模块?如果这样做,那么如何部署已安装模块的新版本?
您是否在存储所有PowerShell模块的位置放置了一个中央PowerShell存储库?如果是,那么该存储库是全局可访问的还是您同步的辅助存储库?
我非常习惯Maven,Ivy和其他依赖管理软件等工具,这就是我对PowerShell在这方面提供的内容感到有点失望的原因。
我找到a very nice article about this subject并且可能会按照我的要求走同一条道路。
您使用的是WinRM吗?您是直接从工作站连接还是有中央管理服务器?您是否限制对这些管理服务器的WinRM访问?
您是否在非托管环境(不在AD域中的服务器)中使用WinRM?你如何配置WinRM?
我们有一个网络区域,服务器不属于AD域,因此我不能依赖WinRM的Kerberos身份验证。
在全球范围内,您的体验是什么,您对结果满意吗?
修改 关于问题2,我们决定建立一个中央存储库。
我们的想法是拥有一个将受版本控制(GIT)的主存储库,并且我们将成为唯一具有写访问权限的存储库。
从该存储库,我们将使用类似rsync的工具(在我们的情况下将是robocopy)复制模块到其他辅助存储库(这将是只读副本)。客户端只能访问这些存储库(我们只需更新这些客户端上的PSModulePath以确保它们可以访问存储库)。
我们还会发布我们的版本,因此在存储库中,可以使用多个版本:开发,集成和生产。
答案 0 :(得分:9)
让我们按类别涵盖每个问题。
<强>传道强>
为了让您对同事们开始对PowerShell产生兴趣,我建议您先从自动化的角度出发。找到一个相对容易实现的常见痛点(快速在同事面前展示一些东西)并使用PowerShell实现自动化。然后从那里扩展。
另一个好主意是在您的办公室开始“脚本俱乐部”,在那里您可以进行一些培训,并在PowerShell中分享有关脚本编写的想法或问题。你可以每隔几周开始一次,看看它是怎么回事。在我的工作中,我们有一个读书俱乐部,在那里我们会阅读各种关于测试,设计和编程的技术书籍,它运作良好。
<强>包装强>
<强>部署强>
目前有一些选项供部署。
远程访问
作为一名构建工程师,我拥有相对较少的机器并完全控制它们。所以我启用了远程处理。你不得不向一些IT人员寻求更好的建议。