PowerShell-分布式解决方案

PowerShell-分布式解决方案,powershell,powershell-2.0,pssnapin,Powershell,Powershell 2.0,Pssnapin,我是PS新手,所以我可能会弄错一些术语 如果您想为30名开发人员/DBA组成的团队推出自定义PowerShell环境(管理单元)。做这件事最好的方法是什么。。。如果您打算每周推出一次新功能?PowerShell 2.0在这方面有帮助吗 假设: 团队中的每个人安装PowerShell(v1或v2)都没有问题 更新: 另请参见下面Jeffrey Snover关于v2的回答。这在一定程度上取决于您打算进行的功能更改。对于我们的环境,我们推出了一个相当标准的PS安装,然后在每个人的配置文件中添加一行代码

我是PS新手,所以我可能会弄错一些术语

如果您想为30名开发人员/DBA组成的团队推出自定义PowerShell环境(管理单元)。做这件事最好的方法是什么。。。如果您打算每周推出一次新功能?PowerShell 2.0在这方面有帮助吗

假设:
团队中的每个人安装PowerShell(v1或v2)都没有问题

更新
另请参见下面Jeffrey Snover关于v2的回答。

这在一定程度上取决于您打算进行的功能更改。对于我们的环境,我们推出了一个相当标准的PS安装,然后在每个人的配置文件中添加一行代码,以便从服务器上的共享文件夹运行脚本。然后在这个脚本中,我可以做任何我想应用到每个人身上的定制

我们将该行添加到特定于机器的MS配置文件中(在%Windir%中的那一行),这是有意的选择。我们这样做是为了让用户基本上只在他们的生产箱上得到这个。这样,当他们编写一些东西时,他们可以快速登录到测试框并运行脚本,以确保脚本将在不依赖这些定制的情况下部署

目前,定制是相当平凡的。主要是添加了一些函数和别名。我还有一个我用C#编写的专门用于powershell的记录器,因此它会从同一网络文件夹中的dll加载它

因为我经常玩弄我的环境,所以我的个人资料中有以下内容:)


如果您正在每周发布一个新版本的管理单元,那么切换版本可能对这部分工作没有帮助。然而,您将在一个更新的平台上开发,它具有扩展功能的优势


正如前面所说,一些脚本可以减轻部署的痛苦,您只需正确维护这些脚本并继续生成新版本即可。这就是为什么我们在PowerShell V2中添加了模块支持—这是xcopy部署函数集的最简单机制。模块文档在这一点上非常简单,但在一两个月内应该会更好

实验!享受吧!交战

杰弗里·斯诺弗[MSFT]
Windows管理合作伙伴架构师

+1。很酷的方法。你能详细说明一下吗?当你说profile时,你指的是窗口的登录配置文件吗?你能多谈一点你正在做的定制以及如何做吗?别名?添加cmdlet?管理单元?这可能会给我一些想法。李·霍姆斯很好地解释了个人资料及其位置。谢谢,我去看看。你选择回答我的问题真有趣。。。这个周末我一直在第九频道看你所有的Powershell旧视频。好东西。
$ProfileDir = ([System.IO.Directory]::GetParent($profile)).FullName
$localMSProfile = "$PShome\Microsoft.Powershell_profile.ps1"
$localAllProfile = "$PShome\profile.ps1"
$userAllProfile = "$ProfileDir\profile.ps1"
$userMSProfile = "$ProfileDir\Microsoft.Powershell_profile.ps1"
$allProfiles = ($localAllProfile, $localMSProfile, $userAllProfile, $userMSProfile)