最近,我加入了我企业的 Windows 团队,凭借我的开发人员背景(一般是 Java、.NET 和 Web),我很快就对 PowerShell 产生了兴趣。我可以看到它比普通的旧批处理文件、VB 更有价值……这就是为什么我想推广它的使用,并且一点一点地推动人们喜欢它而不是其他的,除非有理由不这样做。
部署 PowerShell 看起来非常简单,因为我们可以轻松地批准 WSUS 中的相关补丁并通过 GPO 为 AD 集成服务器配置执行策略。
我的问题实际上更多的是关于 PowerShell 和 PowerShell 模块(例如,PCSX、PowerShellPack、自制……)的分布和使用。
对于那些已经在企业中部署 PowerShell 的人:
您是否有某种用于 PowerShell 的标准包,其中包含您在每台服务器上部署的一组模块?如果这样做,那么如何部署已安装模块的新版本?
您是否放置了一个中央 PowerShell 存储库来存储所有 PowerShell 模块?如果是这样,该存储库是否可以全局访问,或者您是否还有同步的辅助存储库?
我已经习惯了 Maven、Ivy 和其他依赖管理软件等工具,这就是为什么我对 PowerShell 在这方面提供的功能有点失望的原因。
我找到了一篇关于这个主题的非常好的文章,并且可能会走同样的路,因为它符合我的要求。
你使用 WinRM 吗?您是直接从工作站连接还是有中央管理服务器?您是否将 WinRM 的访问权限限制在那些管理服务器上?
您是否在非托管环境(不在 AD 域中的服务器)中使用 WinRM?如何配置 WinRM?
我们有一个网络区域,其中的服务器不属于 AD 域,因此我不能依赖 Kerberos 身份验证来进行 WinRM。
在全球范围内,您的经验是什么,您对结果满意吗?
编辑: 关于问题 2,我们决定建立一个中央存储库。
我们的想法是拥有一个受版本控制 (GIT) 控制的主存储库,并且我们将是唯一拥有写入权限的存储库。
从该存储库中,我们将使用类似 rsync 的工具(在我们的示例中为 robocopy)将模块复制到其他辅助存储库(将是只读副本)。客户端只能访问那些存储库(我们只需更新这些客户端上的 PSModulePath 以确保它们可以访问存储库)。
我们还将分阶段发布我们的版本,因此在存储库中,将有多个版本可用:开发、集成和生产。