![Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?](https://linux22.com/image/480847/Vanilla%20Powershell%20%E6%98%AF%E5%90%A6%E8%B6%B3%E4%BB%A5%E6%88%90%E4%B8%BA%20Windows%20%E5%92%8C%20DB%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%A1%E7%90%86%E5%91%98%E7%9A%84%E8%AF%AD%E8%A8%80%EF%BC%9F.png)
全新安装的 PowerShell 本身是否具有足够的功能来管理 Windows 域环境和/或 SQL 服务器?
如果没有,那么什么是好的,免费的还是付费的第三方附加组件?
答案1
要回答这个问题,您需要放眼大局,并问一问管理 Windows 和 SQL Server 意味着什么。例如,您的环境中还有多少其他东西:
- 第三方备份产品,例如 NetBackup 或 BackupExec
- 防病毒产品
- 存储工具
- 防火墙或网络过滤软件
- 硬件警报(如 IBM Director 或 HP SIM)
所有这些事物都有自己的管理机制,而且由于 PowerShell 仍然相对较新,因此并非所有服务都支持 PowerShell。目前,您可能需要跳出 PowerShell 才能管理这些事物。
另一方面,没有其他语言可以在所有这些 Windows 工具上运行得更好。
当您说“管理服务器的功能”时,这还不是来自 Windows 语言。在 *nix 世界中,您可以留在脚本环境中,但 Windows 世界尚未完全实现。
答案2
对您的第一个问题的回答是肯定的“是”。
为了管理现有的 Windows 域,“原始”PowerShell(无需额外的管理单元)为 WMI、ADSI、COM 和 .NET 提供了开箱即用的支持。
远程机器的管理通过 WMI(或 COM / .NET,取决于使用情况)进行。
管理 SQL Server 可以使用 SMO 库(请参阅SQL Server PowerShell 扩展以获得想法)。您可以通过 ADO.NET 访问数据。
回答你问题的第二部分,什么是好的第三方插件,实际上取决于你需要做什么。正如 John Cook 提到的,PowerShell 社区扩展是一个很好的通用补充。还有很多其他的。PowerShellCommunity.Org 有很多关于第三方产品的很好的参考资料,而 Codeplex 有大量的开源 PowerShell 项目。
更多 Microsoft 产品正在增加 PowerShell 支持(如 SQL Server 2008、Exchange、Active Directory 等)
V2(即将推出)包含一些出色的远程处理和后台作业功能。
答案3
Powershell 不附带 SQL 管理工具,但您可以继续使用 osql 或 isql 之类的工具。我知道有 Powershell 插件可以让您“挂载”SQL 服务器并像文件系统一样对其进行导航(非常类似于内置的注册表)。
答案4
仅靠 PowerShell 本身是不够的。
但 PowerShell 并不孤单,你也不孤单。有 John D. Cook 上面提到的扩展,以及一个活跃的社区分享他们对此的了解。
它可以轻松且不断地进行扩展,并允许您访问管理所需内容所需的 COM 和 .NET 对象。