在Powershell中切换代码

在Powershell中切换代码,powershell,Powershell,我是powershell的新手,一直在试用我在网上找到的代码。以下代码是在远程计算机上查找网络信息的脚本的一部分 $NETS = Get-WMIObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled='True'" -ComputerName $First | Select DNSHostName, @{Name="IPAddress";Expression={$_.IPAddress[0]}}, @

我是powershell的新手,一直在试用我在网上找到的代码。以下代码是在远程计算机上查找网络信息的脚本的一部分

    $NETS = Get-WMIObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled='True'" -ComputerName $First | Select DNSHostName, @{Name="IPAddress";Expression={$_.IPAddress[0]}}, 
    @{Name="IPSubnet";Expression={$_.IPSubnet[0]}}, @{Name="DefaultIPGateway";Expression={$_.DefaultIPGateway[0]}}, DHCPEnabled
它工作得很好,但我还想得到PC的序列号,所以我用这个

  $SN = Get-WMIObject win32_bios -ComputerName $First | Format-List SerialNumber
  $NETS | Add-Member -MemberType NoteProperty -Name SN -Value $SN.SerialNumber -Force
这同样有效,但我想要的是翻转它们。我想先获取序列号,然后附加所有网络信息。虽然我对powershell了解甚少,但我不清楚如何做到这一点


谢谢。

您也可以在计算属性中查询序列号:

$NETS = Get-WMIObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled='True'" -ComputerName $First 
$NETS = $NETS |Select DNSHostName,
    @{Name='SN';Expression={ (Get-WMIObject win32_bios -ComputerName $First).SerialNumber}},
    @{Name="IPAddress";Expression={$_.IPAddress[0]}},
    @{Name="IPSubnet";Expression={$_.IPSubnet[0]}},
    @{Name="DefaultIPGateway";Expression={$_.DefaultIPGateway[0]}}, DHCPEnabled

这对理解powershell和works有很大帮助,谢谢。我尝试了一些类似的方法,但我没有想到在属性中直接查询它可以通过去掉
$NETS=$NETS
并在第一个命令上继续执行管道来进一步优化。我想你错过了答案的要点@TheIncorrigible1我明白了,但我喜欢把事情尽量简化和冗长