【问题标题】:How can I optimize the command Get-ComputerInfo?如何优化命令 Get-ComputerInfo?
【发布时间】:2023-02-14 01:04:34
【问题描述】:

每次我从这个命令中获取信息的 sn-p 时,Windows 都会运行整个函数,这需要时间。该脚本有效,但速度很慢。由于此代码其余部分的编写方式,我无法将 Get-ComputerInfo 存储为字符串,因为我仍然需要从中提取字符串,而无需使用子字符串的繁琐操作。我在这里有什么选择?

我的代码示例在这里:

# Get username and format
$USRNAME = Get-ComputerInfo -Property WindowsRegisteredOwner | Out-String
$USRNAME = $USRNAME.Split('',[System.StringSplitOptions]::RemoveEmptyEntries)
$USRNAME = $USRNAME[2]


# Get BIOS S/N and format
$BIOSSN = Get-ComputerInfo -Property BiosSeralNumber | Out-String
$BIOSSN = $BIOSSN.Split('',[System.StringSplitOptions]::RemoveEmptyEntries)
$BIOSSN = $BIOSSN[2]


# Get BIOS Manufacturer and format
$MANUFAC = Get-ComputerInfo -Property CsManufacturer | Out-String
$MANUFAC = $MANUFAC.Split('',[System.StringSplitOptions]::RemoveEmptyEntries)
$MANUFAC = $MANUFAC[2]


# Get BIOS Model and format
$MODEL = Get-ComputerInfo -Property CsModel | Out-String
$MODEL = $MODEL.Split('',[System.StringSplitOptions]::RemoveEmptyEntries)
$MODEL = $MODEL[2..25]

如前所述,我尝试将其输出为字符串,结果变得一团糟。

【问题讨论】:

    标签: windows powershell


    【解决方案1】:

    调用Get-ComputerInfo 一次,将输出对象存储在一个变量中,然后最终重用它:

    我仍然需要从中提取字符串,而无需使用子字符串的繁琐

    真的不要 - Get-ComputerInfo 输出一个对象,该对象将每条信息整齐地存储在单独的属性中 - 要获取 WindowsRegisteredOwner 值,只需使用 . 成员访问运算符取消引用 WindowsRegisteredOwner 属性,等等对于其余属性:

    $allInfo = Get-ComputerInfo -Property WindowsRegisteredOwner, BiosSeralNumber, CsManufacturer, CsModel
    
    $USRNAME = $allInfo.WindowsRegisteredOwner
    $BIOSSN  = $allInfo.BiosSeralNumber
    $MANUFAC = $allInfo.CsManufacturer
    $MODEL   = $allInfo.CsModel
    

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2019-01-10
      • 2010-11-14
      • 2013-01-13
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      相关资源
      最近更新 更多