MotoWilliams Asked: 2009-05-01 00:07:01 +0800 CST2009-05-01 00:07:01 +0800 CST 2009-05-01 00:07:01 +0800 CST Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言? 772 全新安装的 PowerShell 本身是否具有足够的功能来管理 Windows 域环境和/或 SQL Server? 如果不是,什么是好的、免费的或付费的第三方附加组件? windows sql-server powershell 8 个回答 Voted Best Answer Brent Ozar 2009-05-01T03:59:51+08:002009-05-01T03:59:51+08:00 要回答这个问题,您需要放眼全局,并询问管理 Windows 和 SQL Server 意味着什么。例如,您的环境中有多少其他东西: 第三方备份产品,例如 NetBackup 或 BackupExec 防病毒产品 存储工具 防火墙或网页过滤软件 硬件警报(如 IBM Director 或 HP SIM) 所有这些东西都有自己的管理机制,而且由于 PowerShell 仍然相对较新,并非所有服务都支持 PowerShell。现在,您可能需要跳出 PowerShell 来管理类似的事情。 另一方面,也没有其他语言可以在所有这些 Windows 工具中运行得更好。 当您说“管理服务器的功能”时,它还不是来自 Windows 语言。在 *nix 世界中,您可以留在脚本环境中,但 Windows 世界还没有完全成熟。 Steven Murawski 2009-05-01T08:42:43+08:002009-05-01T08:42:43+08:00 您的第一个问题的答案是响亮的“是”。 为了管理现有的 Windows 域,“vanilla”PowerShell(无需额外的管理单元)为 WMI、ADSI、COM 和 .NET 提供了开箱即用的支持。 通过 WMI(或 COM / .NET,取决于用例)管理远程机器。 管理 SQL Server 可以使用 SMO 库(有关想法,请参阅SQL Server PowerShell Extensions)。您可以通过 ADO.NET 访问数据。 要回答你问题的第二部分,关于什么是好的第三方插件,真的取决于你需要做什么。正如 John Cook 所提到的,PowerShell 社区扩展是一个很好的通用补充。还有很多很多其他的。PowerShellCommunity.Org 有大量关于第三方产品的优秀参考资料,Codeplex 有大量开源 PowerShell 项目。 更多 Microsoft 产品正在添加 PowerShell 支持(如 SQL Server 2008、Exchange、Active Directory 等) V2(即将推出)包含一些出色的远程处理和后台作业功能。 Brad Wilson 2009-05-01T00:09:48+08:002009-05-01T00:09:48+08:00 Powershell 不附带 SQL 管理工具,但您可以继续使用 osql 或 isql 之类的工具。我知道有一些 Powershell 插件可以让你“挂载”一个 SQL 服务器并像它是一个文件系统一样导航它(很像内置的注册表东西)。 John D. Cook 2009-05-01T01:17:13+08:002009-05-01T01:17:13+08:00 PowerShell 社区扩展 ( PSCX ) 是免费且方便的。 John Saunders 2009-05-01T03:48:19+08:002009-05-01T03:48:19+08:00 仅靠自己和您自己,PowerShell 是不够的。 但 PowerShell 并不孤单,您也一样。有一些扩展,比如上面提到的 John D. Cook,以及一个充满活力的社区,他们分享他们从中学到的东西。 它可以轻松且不断地扩展,并让您可以访问管理您喜欢的任何内容所必需的 COM 和 .NET 对象。 K. Brian Kelley 2009-05-01T03:51:10+08:002009-05-01T03:51:10+08:00 总是有 Perl。:) 对于 SQL Server DBA,请参阅Linchi Shea 的书。 Abs 2009-05-01T15:28:48+08:002009-05-01T15:28:48+08:00 我确实发现 Quest ActiveRoles 管理单元对于使用和管理 Active Directory 非常有用。您可以在此处获取管理单元,但我认为这篇博文很好地解释了它是什么、如何设置以及如何使用它。 Jagoop 2009-05-19T09:27:16+08:002009-05-19T09:27:16+08:00 作为一个相当大的环境中的DBA,我的看法是YES。我们只使用 PowerShell 1.0 构建了一个完整的 MS SQL Server 监控和维护框架。该系统自动执行日常容量监控以及自动备份索引维护等。
要回答这个问题,您需要放眼全局,并询问管理 Windows 和 SQL Server 意味着什么。例如,您的环境中有多少其他东西:
所有这些东西都有自己的管理机制,而且由于 PowerShell 仍然相对较新,并非所有服务都支持 PowerShell。现在,您可能需要跳出 PowerShell 来管理类似的事情。
另一方面,也没有其他语言可以在所有这些 Windows 工具中运行得更好。
当您说“管理服务器的功能”时,它还不是来自 Windows 语言。在 *nix 世界中,您可以留在脚本环境中,但 Windows 世界还没有完全成熟。
您的第一个问题的答案是响亮的“是”。
为了管理现有的 Windows 域,“vanilla”PowerShell(无需额外的管理单元)为 WMI、ADSI、COM 和 .NET 提供了开箱即用的支持。
通过 WMI(或 COM / .NET,取决于用例)管理远程机器。
管理 SQL Server 可以使用 SMO 库(有关想法,请参阅SQL Server PowerShell Extensions)。您可以通过 ADO.NET 访问数据。
要回答你问题的第二部分,关于什么是好的第三方插件,真的取决于你需要做什么。正如 John Cook 所提到的,PowerShell 社区扩展是一个很好的通用补充。还有很多很多其他的。PowerShellCommunity.Org 有大量关于第三方产品的优秀参考资料,Codeplex 有大量开源 PowerShell 项目。
更多 Microsoft 产品正在添加 PowerShell 支持(如 SQL Server 2008、Exchange、Active Directory 等)
V2(即将推出)包含一些出色的远程处理和后台作业功能。
Powershell 不附带 SQL 管理工具,但您可以继续使用 osql 或 isql 之类的工具。我知道有一些 Powershell 插件可以让你“挂载”一个 SQL 服务器并像它是一个文件系统一样导航它(很像内置的注册表东西)。
PowerShell 社区扩展 ( PSCX ) 是免费且方便的。
仅靠自己和您自己,PowerShell 是不够的。
但 PowerShell 并不孤单,您也一样。有一些扩展,比如上面提到的 John D. Cook,以及一个充满活力的社区,他们分享他们从中学到的东西。
它可以轻松且不断地扩展,并让您可以访问管理您喜欢的任何内容所必需的 COM 和 .NET 对象。
总是有 Perl。:) 对于 SQL Server DBA,请参阅Linchi Shea 的书。
我确实发现 Quest ActiveRoles 管理单元对于使用和管理 Active Directory 非常有用。您可以在此处获取管理单元,但我认为这篇博文很好地解释了它是什么、如何设置以及如何使用它。
作为一个相当大的环境中的DBA,我的看法是YES。我们只使用 PowerShell 1.0 构建了一个完整的 MS SQL Server 监控和维护框架。该系统自动执行日常容量监控以及自动备份索引维护等。