Tivemos problemas semelhantes com o WoL em placas Intel mais novas no Windows 7. O problema estava sendo causado por recursos de driver para economia de energia: PME e EEE
Com os drivers da Intel NIC, o Windows 7 desativa as PMEs ( Power Management Event
) em um desligamento que torna a WoL inutilizável. Habilitar o PME para uma NIC (fazendo isso na guia Advanced
das configurações do dispositivo da NIC em Device Manager
) permitiria que o WoL funcionasse.
O segundo recurso que implementa o padrão Ethernet com eficiência energética faria com que o WoL não fosse confiável se uma estação de trabalho fosse ativada por um longo tempo, mas ocioso. Provavelmente, isso ocorreu devido à fraca compatibilidade do EEE com outro hardware de rede.
A solução foi desativar o EEE e habilitar o PME para todos os NICs que tinham essa configuração no registro. Este é o script do PowerShell que usamos para conseguir isso:
$regkey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}'
if (Test-Path $regkey)
{
Get-ChildItem $regkey -ErrorAction SilentlyContinue |% {
if ($_.GetValueNames() -contains 'EnablePME')
{
Write-Host "PME value found in $_"
[Microsoft.Win32.Registry]::SetValue($_, 'EnablePME','1')
}
}
Get-ChildItem $regkey -ErrorAction SilentlyContinue |% {
if ($_.GetValueNames() -contains 'EEELinkAdvertisement')
{
Write-Host "EEELinkAdvertisement value found in $_"
[Microsoft.Win32.Registry]::SetValue($_, 'EEELinkAdvertisement', '0')
}
}
}
O GUID usado em $regkey
é descrito aqui . Esteja avisado que modificar configurações nesta chave do registro é perigoso, pois pode tornar suas NICs inutilizáveis, no pior dos casos.