我正在尝试设置网卡的绑定顺序。我编写了以下代码,按照我需要的顺序遍历我想要的网卡。注册表项需要接受所有网卡,否则它将无法工作,并且该注册表项必须设置为MULTI_SZ。
我遇到的问题是,当我组合所有 GUID 时,$Combine它不会逐行拆分每个 GUID,而是将其显示在一大长行中。我将“n”放在每个 GUID 的开头,以便它们进入每行,但它仍然不起作用。
的输出$combine看起来很好,并按照我想要的顺序显示它,但是,当它们被放入注册表项时,它是一大行(参见下面的屏幕截图)
\Device\{2533855F-2A59-485D-87A0-167E5DA39E45}
\Device\{B7883140-E15B-4409-BA1B-96E37A45425C}
\Device\{1FE01120-3866-437F-81FF-556B08999AA4}
\Device\{4A208C06-0D99-4DE4-9B2F-86285AEF864E}
\Device\{D129DDA8-C64B-46A1-B99A-EA74FC4FAF81}
\Device\{2A6471FB-C1D6-47D2-A665-9F276D142D7C}
\Device\{D5C9183B-E542-4010-866F-4443AD55F28C}
\Device\{306D2DED-18B5-45D8-858E-BB3F49E3BD6A}
\Device\{30EF50B2-E4B3-400D-9614-B590E37DE4D8}
Run Code Online (Sandbox Code Playgroud)
那么问题来了,如何才能让结果逐行显示呢?
代码:
$TeamConnection = Get-WmiObject -Class win32_networkadapter | where {$_.Netconnectionid -ne $null -and $_.NetconnectionID -eq "Team"} | select -ExpandProperty GUID
$Prod1Connection = Get-WmiObject -Class win32_networkadapter | where {$_.Netconnectionid -ne $null -and $_.NetconnectionID -eq "Prod1"} | select -ExpandProperty GUID
$Prod2Connection = Get-WmiObject -Class win32_networkadapter | where {$_.Netconnectionid -ne $null -and $_.NetconnectionID -eq "Prod2"} | select -ExpandProperty GUID
$EverythingElse = Get-WmiObject -Class win32_networkadapter | where {$_.Netconnectionid -ne $null -and $_.NetconnectionID -ilike "Local*"} | select -ExpandProperty GUID
$device = "\Device\"
$First_isTeam = "$($device)$($TeamConnection)"
$Second_isProd1 = "$($device)$($Prod1Connection)"
$Third_isProd2 = "$($device)$($Prod2Connection)"
$Total = "$($First_isTeam)`n$($Second_isProd1)`n$($Third_isProd2)"
$NotMembers = $EverythingElse | ForEach-Object { "`n$($device)$($_)" }
$Combine = "$($Total)$($NotMembers)"
$Combine
Set-Location -path "HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Linkage"; Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Linkage" -Name "Bind" -Value $Combine -Type MultiString
Run Code Online (Sandbox Code Playgroud)
输出截图(错误):

它应该是什么样子的屏幕截图(工作中):

还注意到另一件事是,当我选择所有 GUID 时,每个 GUID 末尾都有空格......认为这可能是问题......但看不到我如何添加它们:
空间:

多字符串数据应作为数组添加,而不是作为单个字符串添加。
$Combine = $First_isTeam, $Second_isProd1, $Third_isProd2
$Combine += $EverythingElse | ForEach-Object { "$device$_" }
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Linkage' `
-Name 'Bind' -Value $Combine -Type MultiString
Run Code Online (Sandbox Code Playgroud)