þÿ# Nome do arquivo: Configura-JumboFrame.ps1 # ===================================================================== # Criado em: 24 de Março de 2010 # Versão: 1.1 # Autor: Matthew H. Mattoon # Website: http://blog.allanglesit.com # Tradução: Roberto S. Kekeny - www.virtualize.eti.br # ===================================================================== # Propósito: Permite habilitar/desabilitar o Jumbo Frame # automáticamente # Pré-Reqs: 1) Interface de rede deve ter IP estático. # 2) Para habilitar em um Switch Virtual do Hyper-V # não crie o Virtual switch antes de executar este script # ===================================================================== # Exemplos: .\Configura-jumboframe.ps1 <Modo> <IP> # .\Configura-jumboframe.ps1 habilita 10.0.0.1 # .\Configura-jumboframe.ps1 disabilita 10.0.0.1 # .\Configura-jumboframe.ps1 verifica 10.0.0.1 # ===================================================================== # v1.0 > v1.1 - 29 de Março de 2010 # 1) $FindAdapterProperties agora só verifica as chaves do registry # que sejam precedidos de zero # 2) Adicionado cores no Write-Hosts # ===================================================================== param([string]$Mode = $(throw "Por favor especifique habilita, desabilita ou verifica"), [string]$IPAddress = $(Read-Host -prompt "Digite o IP estático da placa de rede")) Function VerifyJumboFrames ($IpAddress,$AdapterName,$CurrentJumboPacket) { Write-Host -foregroundcolor yellow $IpAddress em $AdapterName atualmente tem MTU com tamanho de $CurrentJumboPacket } Function EnableJumboFrames ($IpAddress,$AdapterName,$CurrentJumboPacket,$AdapterProperties) { $EnableRegJumboPacket = 9014 $EnableCmdJumboPacket = "mtu=9000" Write-Host -foregroundcolor yellow $IpAddress em $AdapterName atualmente tem MTU com tamanho de $CurrentJumboPacket Write-Host -foregroundcolor cyan Modificando a configuração de MTU via netsh... netsh interface ipv4 set subinterface $AdapterName $EnableCmdJumboPacket store=persistent Write-Host -foregroundcolor cyan Modificando a configuração de MTU no Registry... Set-ItemProperty $AdapterProperties.PSPath -name "*JumboPacket" -value $EnableRegJumboPacket Write-Host -foregroundcolor red Habilitado - É necessário reinicar. } Function DisableJumboFrames ($IpAddress,$AdapterName,$CurrentJumboPacket,$AdapterProperties) { $DisableRegJumboPacket = 1514 $DisableCmdJumboPacket = "mtu=1500" Write-Host -foregroundcolor yellow $IpAddress em $AdapterName atualmente tem MTU com tamanho de $CurrentJumboPacket Write-Host -foregroundcolor cyan Modificando a configuração de MTU no Registry... Set-ItemProperty $AdapterProperties.PSPath -name "*JumboPacket" -value $DisableRegJumboPacket Write-Host -foregroundcolor cyan Modificando a configuração de MTU via netsh... netsh interface ipv4 set subinterface $AdapterName $DisableCmdJumboPacket store=persistent Write-Host -foregroundcolor red Desabilitado - É necessário reinicar. } $FindInterfaceIndex = gwmi win32_networkAdapterConfiguration |where {$_.IPAddress -eq $IpAddress} $FindInterfaceGUID = gwmi win32_networkAdapter |where {$_.Index -eq $FindInterfaceIndex.Index} $GUID = $FindInterfaceGUID.GUID $FindAdapterName = Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\$GUID\Connection" $AdapterName = $FindAdapterName.Name ## Legacy Code v1.0 $FindAdapterProperties = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\*\' |where {$_.NetCfgInstanceID -eq $guid} $FindAdapterProperties = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0*\' |where {$_.NetCfgInstanceID -eq $guid} $AdapterProperties = Get-ItemProperty $FindAdapterProperties.PSPath $CurrentJumboPacket = $AdapterProperties."*JumboPacket" if ($Mode -eq "habilita") { EnableJumboFrames $IpAddress $AdapterName $CurrentJumboPacket $AdapterProperties } elseif ($Mode -eq "desabilita") { DisableJumboFrames $IpAddress $AdapterName $CurrentJumboPacket $AdapterProperties } elseif ($Mode -eq "verifica") { VerifyJumboFrames $IpAddress $AdapterName $CurrentJumboPacket }