1

test.ps1的内容:

Set-Location HKLM:
$RegistryKeys = (Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\services\VMSMP\Parameters\NicList)
foreach ($Key in $RegistryKeys){
    if ((Get-ItemProperty $Key).FriendlyName -like "*Corp*") {
        Write-Host "Found Switch in $Key"
        $SwitchName = (Get-ItemProperty -Path $Key).SwitchName
        $PortName = (Get-ItemProperty -Path $Key).PortName
        Write-Host $SwitchName
        Write-Host $PortName
    }
    else{}
}

输出(我快速连续运行了 4 次,以强调添加到返回值中的奇怪的额外字符):

Found Switch in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters\NicList\03BDF338-4BC5-4896-8C40-55C91DEBB50D
D00D57C1-8FE2-447F-ABBD-B672CA2683CCø
D5BD78A2-543F-4F15-9FA6-729F62AE09A3ø
Found Switch in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters\NicList\03BDF338-4BC5-4896-8C40-55C91DEBB50D
D00D57C1-8FE2-447F-ABBD-B672CA2683CCø
D5BD78A2-543F-4F15-9FA6-729F62AE09A3ø
Found Switch in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters\NicList\03BDF338-4BC5-4896-8C40-55C91DEBB50D
D00D57C1-8FE2-447F-ABBD-B672CA2683CCø
D5BD78A2-543F-4F15-9FA6-729F62AE09A3ø
Found Switch in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters\NicList\03BDF338-4BC5-4896-8C40-55C91DEBB50D
D00D57C1-8FE2-447F-ABBD-B672CA2683CCø
D5BD78A2-543F-4F15-9FA6-729F62AE09A3ø
Found Switch in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VMSMP\Parameters\NicList\03BDF338-4BC5-4896-8C40-55C91DEBB50D
D00D57C1-8FE2-447F-ABBD-B672CA2683CCm
D5BD78A2-543F-4F15-9FA6-729F62AE09A3m

添加到注册表项中的额外字符是怎么回事?返回的信息是正确的,除了那个额外的垃圾字符。有时它的 o,m,s,?,但似乎总是只有一个字符(有时它不会添加额外的字符)。

不知所措……

4

1 回答 1

0

我最好的猜测是你得到了一个多字符串键的值,而那些有趣的字符是字符串分隔符。不过,我的电脑上没有VMSMP钥匙来验证我的理论。

于 2011-12-08T19:59:50.987 回答