如何优化PowerShell的Get-ComputerInfo命令以提升脚本运行速度?
优化方案
核心思路
只调用一次Get-ComputerInfo命令,一次性获取所有需要的属性,直接访问返回对象的属性值,彻底避免多次执行命令的性能损耗,同时省去繁琐的字符串分割操作。
优化后的代码
# 一次性获取所有所需属性,仅执行一次Get-ComputerInfo $computerInfo = Get-ComputerInfo -Property WindowsRegisteredOwner, BiosSerialNumber, CsManufacturer, CsModel # 直接提取对象属性值,无需字符串处理 $USRNAME = $computerInfo.WindowsRegisteredOwner $BIOSSN = $computerInfo.BiosSerialNumber $MANUFAC = $computerInfo.CsManufacturer $MODEL = $computerInfo.CsModel # 若需对MODEL做截取(匹配原代码的2..25逻辑),直接对属性值操作即可 # $MODEL = $computerInfo.CsModel.Substring(2, 24) # 示例:从索引2开始取24个字符
优化说明
- 性能提升:
Get-ComputerInfo每次执行都会遍历系统多处信息源,仅调用一次能大幅减少系统资源消耗和脚本运行时间。 - 代码简洁:直接访问对象属性比转字符串后分割的方式更直观,避免了因输出格式变化导致的分割索引失效问题。
- 可靠性更高:对象属性的返回值是原生数据类型,不会出现字符串分割时的空元素、索引越界等意外情况。
内容的提问来源于stack exchange,提问作者Alec
相关产品推荐
相关产品推荐

