PowerShell 远程管理与 WMI 脚本转换全解析
1. PowerShell 并行处理与 WMI 脚本转换
1.1 并行处理的起源与解决方案
在处理大量计算机时,会面临一个严峻的问题。有客户的脚本需要处理众多计算机,以至于在第一个脚本还未完成时,就不得不启动第二个脚本。解决这个难题的方法是并行调用命令,但并非完全并行,因为大多数机器无法承受 10000 个活动 WMI 查询的负载。虽然能识别解决方案和潜在问题,但实际实现起来却截然不同。即便具备相应技能,支持自动节流的作业管理器通常也不在管理员的优先事项列表中,因为他们还有许多紧急事务需要处理。
而 PowerShell 的 WMI cmdlets 能为你处理所有这些复杂性。需要注意的是,基于 CIM 的 cmdlets 不支持 -AsJob 参数。
1.2 VBScript WMI 脚本转换为 PowerShell
1.2.1 问题描述
当你想在 PowerShell 中执行 WMI 或 CIM 任务,但只能找到 VBScript 示例来解决问题时,就需要进行脚本转换。
1.2.2 解决方案
- 检索数据:使用
Get-CimInstancecmdlet 来完成从计算机检索数据的脚本任务。示例代码如下:
foreach($printer in Get-CimInstance -Computer COMPUTER Win32_Printer) {