ืืืจืื ืืคืืจื ืืืืืจืช Wake-on-LAN ืืืืฆืขืืช PowerShell, ืืืืื ืคืงืืืืช ืืกืืกืืืช ืืคืชืจืื ืืขืืืช ื ืคืืฆืืช ืื ืืืขืืช ืืืืืืื ืืื ืืื ืืชืงื ืื ืฉื ืืชืืื ืจืฉืช.
ืฉืื 1: ืืืืื ืืชืงื.
ืืคื ื ืืืืจืช Wake-on-LAN (WOL) ืขืืืจ ืืชืื ืจืฉืช, ืืฉ ืืืืืช ืืืืืืง ืขื ืืืื ืืชืงื ืื ื ืขืืืืื. ืืฉื ืื, ื ืฉืชืืฉ ืืคืงืืืช PowerShell ืืืืคืฉืช ืืชืงื ืื ืืคื ืืืง ืืฉืื (ืืืืืื, "Realtek" ืื "Intel").
Get-PnpDevice | Where-Object { $_.FriendlyName -like "*Realtek*" } | Select-Object FriendlyName, Status, Class, InstanceId

ืคืงืืื ืื ืืืืจืช ืืืขืจืืช:
> "ืืฆื ืื ืืช ืื ืืืชืงื ืื ืฉืฉืื ืืืื ืืช ืืืืื ยซRealtekยป, ืืืฆื ืืืื ืขื ืืจืืข ืขืืืืืช ืขืืืจื: ืฉื ืืื, ืกืืืืก, ืืืืงื ืืืืื ืืขืจืืช."
Get-PnpDevice: ืืืืืจ ืจืฉืืื ืืืื ืฉื ืื ืืชืงื ื Plug-and-Play.|(ืฆืื ืืจ): ืืขืืืจ ืืช ืืจืฉืืื ืืืื.Where-Object { ... }: ืืกื ื ืืช ืืจืฉืืื, ืืืฉืืืจ ืืชืงื ืื ืฉืฉืื (FriendlyName) ืืืื "Realtek".|(ืฆืื ืืจ): ืืขืืืจ ืืช ืืจืฉืืื ืืืกืื ื ืช.Select-Object ...: ืืขืฆื ืืช ืืคืื, ืืืฆืื ืจืง ืืช ืืืืคืืื ืื ืืืจืืฉืื.
ืืืฆืืื ืืช ืืืชืงื ืืจืฆืื ืืืืงืืื ืืช ืืจืืฉืื ืืืจืฉืืื
$device = Get-PnpDevice | Where-Object { $_.FriendlyName -like "*Realtek*" } | Select-Object -First 1
*ืจืืฉืืื ืืช ืืืคืืื ืื ืืืฉืชื ืื*
$DeviceName = $device.FriendlyName
$InstanceId = $device.InstanceId
$pmKey = "HKLM:\SYSTEM\CurrentControlSet\Enum\$InstanceId\Device Parameters"
ืฉืื 2: ืืจืฉืื ืืืืืืืช ืืืคืขืื
ืืคืงืืื powercfg ื ืืชื ืช ืืืชืงื ืืจืฉืื "ืจืฉืืืช" ื-Windows ืืืขืืจ ืืช ืืืขืจืืช.
powercfg -deviceenablewake $DeviceName
ืคืงืืื ืื ืฉืงืืื ืืกืืืื ืืชืืื "ืืคืฉืจ ืืืชืงื ืื ืืืขืืจ ืืช ืืืืฉื ืืืฆื ืฉืื ื".
ืคืขืืืชื ืืืคืืื โ ืืฉืืชื:
powercfg -devicedisablewake $DeviceName
ืฉืื 3: ืืืืจืช ืื ืื ืืชืงื.
ืืืืจืืช WOL ื ืืฆืืืช ืืคืจืืืจืื ืฉื ืื ืื ืืืชืงื ืขืฆืื, ืืืืืืกื ืื ืืจืืฉืื.
ืืื ืืกืื ืืช ืืชืืื **"ืืคืฉืจ ืจืง ืืืืืืช ืงืกื ืืืขืืจ ืืช ืืืืฉื ืืืฆื ืฉืื ื"**,
ื ืฉืชืืฉ ืืคืงืืื Set-ItemProperty.
# ืืืืืจืื ืืช ืืืืคืืื
Set-ItemProperty -Path $pmKey -Name "*WakeOnMagicPacket" -Value 1
ืคืขืืื ืืคืืื โ ืืฉืืชืช WOL (Value 0):
Set-ItemProperty -Path $pmKey -Name "*WakeOnMagicPacket" -Value 0
ืืขืื ืฉื ืคืจืืืจ ืื ืขืฉืื ืืืฉืชื ืืช ืืื ืืฆืจื ืื ืฉืื ืื. ืืืืืื, ืขืืืจ **Intel** ืื
*WakeOnMagicPacket, ืืขืืืจ **Realtek** โWakeOnMagicPacket(ืืื*). ืื ืืืืืจื ืืื ื ืืืืฉืืช, ืืืงื ืืช ืืฉื ืื ืืื ืืืืฆืขืืช ืืคืงืืืGet-ItemProperty -Path $pmKeyืืืฉืชืืฉื ืื.
ืฉืื 4: ืืืืจื ืกืืคืืช ืืืืฆืขืืช CIM
ืืื ืืืืื ืฉืืืืจืืช ื ืืืื ืฆืจืืืช ืืืฉืื ืืืฉืื ืืืืื, ื ืฉืชืืฉ ืืชืงื ืืืืืจื ื **CIM** (Common Information Model).
# ืืืฆืืื ืืช ืืืืืืงื ื-CIM ืืืฉืืื ืืืชืงื ืฉืื ื
$adapterCim = Get-CimInstance -Namespace root\wmi -ClassName MSPower_DeviceEnable | Where-Object { $_.InstanceName -like "*$($instanceId.Split('\')[-1])*" }
# ืืืืฉืืื ืขืืื ืฉืื ืืืื
if ($adapterCim) {
Set-CimInstance -CimInstance $adapterCim -Property @{ Enable = $true }
}
