기 타 파워쉘로 WOL 수행
2024.01.06 17:27
대상의 mac 어드레스만 알면 파워쉘로 wol을 위한 매직패킷을 간단히 보넬수 있습니다.
이를위해 아래 스크립트를 c:\windows\wol.ps1 명으로 저장합니다.
If ($Args.Count -eq 0) {
Write-output "WOL을 수행할 기기의 MAC를 입력하세요"
Exit
}
$Mac = $args[0]
Write-output "$Mac 장치에 WOL 신호를 성공적으로 보넸습니다."
$MacByteArray = $Mac -split "[:-]" | ForEach-Object { [Byte] "0x$_"}
[Byte[]] $MagicPacket = (,0xFF * 6) + ($MacByteArray * 16)
$UdpClient = New-Object System.Net.Sockets.UdpClient
$UdpClient.Connect(([System.Net.IPAddress]::Broadcast),7)
$UdpClient.Send($MagicPacket,$MagicPacket.Length)
$UdpClient.Close()
또는 자주 사용하려면 바탕화면에 새로만들기 → 바로가기 에서 대상에 다음과 같이 써도 됩니다.
powershell c:\windows\wol.ps1 [mac 주소]
※ mac 주소에서 필드구분은 공백없이 : - 둘다 됩니다. (예: 11:22::33:44:55:66 또는 11-22-33-44-55-66)
대상이 동일 서브넷에 있을때만 작동하고
외부에서 켜야한다면 공유기에 접속해 wol 기능을 활용할수 있습니다.(※ 보안에 주의)
작동이 안되면
대상 pc에서 바이오스 ACPI 부분에서 PCI 장치로 켜기가 Enable 돼있는지 확인합니다.