Nell’articolo VLAN con VMware Workstation e Virtualbox avevo gia’ anticipato cosa è il binding e come si attivano o disattivano i bind di protocollo, su Windows, dalla GUI, graphic user inteface; se, però, questa attività deve essere svolta su un numero indefinito di interfacce di rete oppure doverla ripetere per un parco macchine numericamente importante, sarebbe estremamente dispendiosa in termini di tempo, per non dire estremamente noiosa; oppure ancora, se deve essere fatta in modo non interattivo, dopo la creazione massiva di macchine virtuali, ad esempio in abiente di virtualizzazione; occorre, quindi, utilizzare un altro metodo.
Per farlo, possiamo avvalerci di Powershell utilizzando il comando Get-NetAdapter, in combinazione al comando Get-NetAdapterBinding, per ottenere lo stato o a Set-NetAdapterBinding per impostare il nuovo stato; vediamo come:
Ricaviamo le informazioni che ci servono, in questo caso, l’elenco delle interfacce di rete, sul computer.
Get-NetAdapter | ft Name

Sempre a titolo di esempio, applicheremo le modifiche alle prime quattro, denominate Intel(R) PRO-1000 PT Quad Port LP Server Adapter, …#2, …#3, …#4.
Cerchiamo quali bind sono attivi, su ciascuna interfaccia.
$NetAdapter = Get-NetAdapter -Name "Intel(R) PRO-1000 PT*" $NetAdapter | Foreach-Object { Get-NetAdapter -Name $_.Name | Get-NetAdapterBinding | ? {$_.Enabled -eq $true} Write-host $null }

Disabilitiamo i bind che non ci servono;
$NetAdapter = Get-NetAdapter -Name "Intel(R) PRO-1000 PT*" $ComponentIDs = @('ms_lldp','ms_tcpip6','ms_server','ms_lltdio','ms_rspndr','ms_msclient','ms_pacer') $NetAdapter | Foreach-Object { $Adapter = $_ $ComponentIDs | ForEach { Get-NetAdapter -Name $Adapter.Name | Set-NetAdapterBinding -ComponentID $_ -Enabled $False } }
Ripetiamo il comando precedente, per cercare i bind rimasti attivi.

Con questo metodo, pur non essendo, Powershell, esattamente un fulmine, saremo in grado di automatizzare o compiere operazioni, altrimenti, noiose e ripetitive, in modo rapido, semplice ed efficace.