我们正在讨论为我们的分布式系统开发改进的管理基础架构。 我们使用COM,Web服务和.NET组件。由于我们基于Microsoft Windows Server XP / 2003,我猜,我们基本上有两种选择:
- Powershell cmdlet
- 使用System.Management和WMI提供程序的WMI类用于本机代码(类,实例,方法,事件)
为什么我们选择Powershell而不是WMI?
我们正在讨论为我们的分布式系统开发改进的管理基础架构。 我们使用COM,Web服务和.NET组件。由于我们基于Microsoft Windows Server XP / 2003,我猜,我们基本上有两种选择:
为什么我们选择Powershell而不是WMI?
我会选择PowerShell而不是WMI,原因如下:
即使您使用WMI路由,PowerShell也支持使用WMI(尽管有一些小问题)。
对我而言,PowerShell是表现最好的方式 任务导向 应用程序的接口。在Microsoft提供PowerShell的支持下,它将成为整个企业中管理应用程序和服务的一致界面。
我的日常工作是作为管理员,我正在推动所有与我合作的供应商展示PowerShell管理API,因为这使得管理应用程序的学习曲线和上下文切换更低。在开发方面,我已经编写了(并且仍在开发)一系列PowerShell cmdlet,用于我使用的一个开源产品,并且正在为另一个应用程序工作。
杰弗里·斯诺弗回答“为什么是PowerShell” 这里。帖子是在SQL的上下文中,但在这里非常适用。
我会选择PowerShell而不是WMI,原因如下:
即使您使用WMI路由,PowerShell也支持使用WMI(尽管有一些小问题)。
对我而言,PowerShell是表现最好的方式 任务导向 应用程序的接口。在Microsoft提供PowerShell的支持下,它将成为整个企业中管理应用程序和服务的一致界面。
我的日常工作是作为管理员,我正在推动所有与我合作的供应商展示PowerShell管理API,因为这使得管理应用程序的学习曲线和上下文切换更低。在开发方面,我已经编写了(并且仍在开发)一系列PowerShell cmdlet,用于我使用的一个开源产品,并且正在为另一个应用程序工作。
杰弗里·斯诺弗回答“为什么是PowerShell” 这里。帖子是在SQL的上下文中,但在这里非常适用。
我不确定我会做出决定。它不是 - 或者......你可以选择两者兼顾。
WMI可以被许多不同的东西使用,而不仅仅是PowerShell。为什么不在PowerShell中编写管理工具,然后将WMI包装在一些面向任务的cmdlet中以使管理员更容易?这就是一些MS产品团队选择做的事情,特别是当他们有其他WMI消费者他们想要继续支持时。
如果您已经拥有合适的.NET代码,那么将其转换为cmdlet可能比将其转换为WMI提供程序要快。如果是这种情况,速度是一个问题,那就更容易了。但无论您做什么,您都可以将其包装在管理员的PowerShell cmdlet中,这绝对是推荐的方法。
不确定这可以通过您目前提供的信息来回答。我的直觉是你应该使用powershell,因为听起来你可能已经有了一些.Net代码。但它确实只取决于你想要做什么。