PowerShell 对象模型选择与安全指南
1. 如何选择对象模型
在 PowerShell 中,有多种技术可供选择,如 .NET、COM 和 WMI 等,这些模型在功能上有很多重叠。面对众多选择,我们该如何抉择呢?以下是一些指导原则:
-Cmdlets:通常应作为首选。它们在 PowerShell 环境中运行效果最佳。
-.NET 类:若有合适的 .NET 类能满足需求,这是优先选择,但要留意其在路径等方面的限制。
-WMI:若没有合适的 .NET 类,或者需要远程访问信息,可使用 WMI。PowerShell 的 cmdlets 和类型加速器对 WMI 有很好的支持。
-COM:若其他解决方案都不适用,且有可用的 COM 对象,则可使用 COM,但要注意可能出现的问题。
此外,当改编现有代码示例时,最好使用示例中所采用的技术。如果是 VBScript 代码示例,可能会用到 COM 和/或 WMI;如果是 C# 或 VB.Net 代码示例,则通常使用 .NET。最终,“最佳”答案是能以最短时间、最少精力完成任务的方案,PowerShell 注重的是实用性。
还有一项在管理 Windows 系统时非常重要的技术——ADSI。PowerShell V1 在发布周期后期才添加了对 ADSI 的支持,它采用了与 WMI 相同的基本模型。
2. COM 和 WMI 概述
PowerShell 支持 WMI 和 COM 以及较新的 .NET