Friday, August 26, 2011

Wake ON LAN – End to End Configuration at Client Site

Dependencies External to Configuration Manager 2007

Dependency More Information

Network cards must support the standard Magic Packet format.

All network cards that have the Windows Logo certificate support this Magic Packet format.

Computers must be configured for wake-up packets on the network card and in the computer BIOS.

Refer to your hardware vendor's documentation for information about how to configure this and the wake-up capabilities of the computer.

If you are using Wake On LAN with subnet-directed broadcast, all routers between the site server and target computers must allow IP directed broadcasts, and support IPv4.

Typically, routers are configured to not allow subnet-directed broadcast.

Subnet-directed broadcasts are not supported with IPv6.

Configuration Manager 2007 Dependencies

Dependency More Information

Hardware inventory must be enabled, and completed an inventory schedule.

About Collecting Hardware Inventory

How to Configure Hardware Inventory for a Site

The Configuration Manager site must be a primary site.

You can configure child primary sites for Wake On LAN, but not secondary sites. Clients in secondary sites will be sent wake-up packets from their assigned primary site.

Client computers must be running the Configuration Manager 2007 client.

Clients running Systems Management Server (SMS) 2003 do not support Wake On LAN.




It’s biggest challenge that to configure the BIOS settings for all the Desktops when you have different models. I have put my finding here for TOP three Manufactures such as DELL , HP and IBM/Lenovo.

 

The Pre-Requirement at client end includes below two key configurations to be done at each client end.

1) enable Wake-On-Lan in BIOS

2) Configure Power capabilities on Network card Properties from device Manager

 

Okey coming to the first challenge enable Wake-On-Lan in BIOS on three manufactures

1) Dell – dell has DCCM (Dell Client Configuration Utility - Powered by Symantec) and other Management Software it has

2) Lenovo:- I have created a WMI based VBSCRIPT that will Enable WOL BIOS Settings.

' Use at your own risk

'Start Vbscript

'On Error Resume Next

strComputer = "HSCINHYDLT00012"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Lenovo_SetBiosSetting")

For Each objItem in colItems
'ObjItem.SetBiosSetting "WakeOnLAN,Disabled"
'ObjItem.SetBiosSetting "WakeOnLAN,Disable"
ObjItem.SetBiosSetting "WakeOnLAN,Enable"
ObjItem.SetBiosSetting "WakeOnLAN,Enabled"
Next

‘end vbscript

3) HP : BiosConfigUtility.EXE a tool from HP

need to show the configuration file to enable the settings

English
S5 Wake on LAN
    *Enable
    Disable

 

Save above fourlines in a text file as CONFIG.TXT.

execute the below COMMAND LINE.

BiosConfigUtility.exe /SetConfig:CONFIG.TXT

and above all can be advertise as software distribution package by creating manufacture based collections.

 

Now the Next key gole is to Configure Power capabilities on Network card Properties from device Manager.

to do this below script can be usefull** test and use with your own risk

‘vbscript start

 

Option Explicit

Dim colNetworkAdapters
Dim objNetworkAdapter

Dim strDevInstanceName
Dim strNetworkAdapterID

'Query for all of the Win32_NetworkAdapters that are wired Ethernet (AdapterTypeId=0 corresponds to Ethernet 802.3)
Set colNetworkAdapters = GetObject("WinMgmts:{impersonationLevel=impersonate}//./root/Cimv2")_
.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE AdapterTypeId=0")

WScript.Echo "Enabling WoL for the following adapters:"

For Each objNetworkAdapter In colNetworkAdapters
            WScript.Echo "  " & objNetworkAdapter.Name & " [" & objNetworkAdapter.MACAddress & "]"

            strNetworkAdapterID = UCase(objNetworkAdapter.PNPDeviceID)

            'Query for all of the MSPower_DeviceWakeEnable classes
            Dim colPowerWakeEnables
            Dim objPowerWakeEnable

            Set colPowerWakeEnables = GetObject("WinMgmts:{impersonationLevel=impersonate}//./root/wmi")_
            .ExecQuery("SELECT * FROM MSPower_DeviceWakeEnable")
            'Compare the PNP Device ID from the network adapter against the MSPower_DeviceEnabled instances
            For Each objPowerWakeEnable In colPowerWakeEnables
                        'We have to compare the leftmost part as MSPower_DeviceEnabled.InstanceName contains an instance suffix
                        strDevInstanceName = UCase(Left(objPowerWakeEnable.InstanceName, Len(strNetworkAdapterID)))
                        'Match found, enable WOL
                        If StrComp(strDevInstanceName, strNetworkAdapterID)=0 Then
                                    objPowerWakeEnable.Enable = True
                                    objPowerWakeEnable.Put_           'Required to write the value back to the object
                        End     If
            Next
            'Query for all of the MSNdis_DeviceWakeOnMagicPacketOnly classes
            Dim colMagicPacketOnlys
            Dim objMagicPacketOnly
            Set colMagicPacketOnlys = GetObject("WinMgmts:{impersonationLevel=impersonate}//./root/wmi")_
            .ExecQuery("SELECT * FROM MSNdis_DeviceWakeOnMagicPacketOnly")
            'Compare the PNP Device ID from the network adapter against the MSNdis_DeviceWakeOnMagicPacketOnly instances
            For Each objMagicPacketOnly In colMagicPacketOnlys
                        'We have to compare the leftmost part as MSNdis_DeviceWakeOnMagicPacketOnly.InstanceName contains an instance suffix
                        strDevInstanceName = UCase(Left(objMagicPacketOnly.InstanceName, Len(strNetworkAdapterID)))
                        'Match found, enable WOL for Magic Packets only
                        If StrComp(strDevInstanceName, strNetworkAdapterID)=0 Then
                                    objMagicPacketOnly.EnableWakeOnMagicPacketOnly = True  'Set to false if you wish to wake on magic packets AND wake patterns
                                    objMagicPacketOnly.Put_             'Required to write the value back to the object
                        End     If
            Next
Next

 

‘vbscript end

1 comment:

  1. Thanks for this informative article. I had some troubles with Win 10. For example, after I upgraded it from win 8, my Wake-on-LAN does not work. I tried many things and

    finally I solved the problem.
    Here you can find how to configure Wake-on-LAN on Windows 10.

    How to configure Wake-on-LAN on Windows 10

    Hope it helps for somebody else who read this article.

    ReplyDelete