윈도우 1. 무선만 있는 노트북을 WinPE 로 부팅하면 인터넷이 안 될 때: Windows 의 Wi-Fi 프로필을 PE 로 넘기기 - PCMEISTER 기술 노트
본문 글자 크기

윈도우 1. 무선만 있는 노트북을 WinPE 로 부팅하면 인터넷이 안 될 때: Windows 의 Wi-Fi 프로필을 PE 로 넘기기

원격 PC 수리에서 윈도우를 새로 까는 과정은 이렇습니다. 고객이 우리 프로그램을 실행하면 PC 가 한 번만 WinPE 로 부팅되고, PE 안에서 원격 지원 프로그램이 다시 저를 부릅니다. 그 상태에서 디스크를 정리하고 윈도우를 설치합니다. PE 는 PhoenixPE 를 PEBakery 로 빌드한 것을 씁니다.

문제는 PE 로 넘어간 뒤 인터넷이었습니다. 유선 랜이 꽂힌 데스크톱은 괜찮은데, 무선만 쓰는 노트북은 PE 에 Wi-Fi 비밀번호가 없으니 서버에 닿지를 못합니다. 고객에게 PE 화면에서 Wi-Fi 를 골라 비밀번호를 치라고 할 수도 있지만, 원격 수리를 맡기는 분께 낯선 PE 화면을 만지게 하는 건 피하고 싶었습니다.

그래서 윈도우에 있을 때 미리 챙기기로 했습니다. PE 부팅을 준비하는 단계(관리자 권한)에서 지금 연결된 Wi-Fi 프로필을 WLAN API 로 꺼내면 비밀번호가 평문으로 들어 있는 XML 을 얻을 수 있습니다. 이걸 C:\PCM-PE-Boot\wifi\wifi-1.xml 처럼 저장하고, 폴더 권한은 SYSTEM 과 Administrators 만 남겼습니다. 회사 인증(802.1X) 프로필이나 키를 못 읽은 프로필은 넘기지 않습니다.

PE 쪽은 서버에 닿기 전에 스크립트 하나를 돌립니다. 이미 서버에 닿으면 그냥 지나가고, 아니면 고정 디스크마다 \PCM-PE-Boot\wifi 를 찾아 프로필을 등록하고 연결합니다.

netsh wlan add profile filename="D:\PCM-PE-Boot\wifi\wifi-1.xml" user=all
netsh wlan connect name="집Wi-Fi"

같은 노트북으로 시험했습니다.

1차. 연결이 안 됐습니다. 로그에는 이 한 줄이었습니다.

No Wi-Fi adapter is available in PE.

이 PE 에서는 무선 랜이 늦게 올라왔습니다. PE 의 네트워크 관리 프로그램(PENetwork)이 무선을 올리기까지 몇 분이 걸렸는데, 제 스크립트는 부팅 직후 딱 한 번 시도하고 끝냈던 겁니다. 그래서 무선 서비스(wlansvc)를 직접 켜고, 무선 랜이 보일 때까지 3초마다 프로필 등록, 15초마다 연결을 최대 5분 동안 반복하게 바꿨습니다. 화면에는 기다린 시간을 보여 주고, 랜선이 꽂히면 바로 끝냅니다. 이때 무선 서비스가 늦게 뜨는 이유를 PE 레지스트리 설정 탓으로 짐작했는데, 나중에 보니 PhoenixPE 가 부팅 때 net start Wlansvc 로 켜고 있었습니다. 짐작이 틀렸던 거죠.

2차. 1분 남짓 기다리더니 비밀번호 입력 없이 윈도우에서 쓰던 Wi-Fi 에 붙었고, 그 뒤로 정상 진행됐습니다.

3차. 이번엔 Wi-Fi 는커녕 원격 지원 창 자체가 안 떴습니다. PE 이미지는 2차와 같은 판이었습니다.

원인은 창을 띄우는 위치였습니다. 원격 지원 시작 스크립트를 PENetwork 의 “네트워크가 연결된 뒤 실행” 항목에만 걸어 두었거든요. PENetwork 는 무선 랜을 다 올려야 그 단계를 끝내는데, 이 노트북은 그게 1분에서 3분 넘게 걸리거나 아예 끝나지 않았습니다. 2차는 운 좋게 끝났던 거고요. 처음 “무선이 안 잡혀서 아무것도 안 켜진다” 고 했던 것도 사실 같은 원인이었습니다.

그래서 PhoenixPE 가 셸을 띄우기 전에 부르는 사용자 훅(PhoenixPE-UserConfig.au3)에서도 시작 스크립트를 부르게 했습니다. PENetwork 프로세스가 뜨기를 최대 3분 기다리고, 5초 뒤에 네트워크 연결과 상관없이 실행합니다. 원래 자리에도 그대로 남겨 두고, 둘 중 먼저 온 쪽만 실행되도록 시작할 때 폴더 하나를 만들어 잠금처럼 썼습니다.

mkdir %SystemRoot%\Temp\PCM-StartRustDesk.started 2>nul || exit /b 0

Wi-Fi 연결 스크립트도 시간 제한 없이 서버에 닿을 때까지 기다리게 바꿨습니다. 5분이 지나면 “직접 연결해 주세요” 안내로 바뀌고, 그동안 랜선을 꽂거나 PENetwork 에서 손으로 연결해도 바로 다음 단계로 넘어갑니다.

4차. 창은 바로 떴습니다. 그런데 이번엔 “Windows 에서 넘겨받은 Wi-Fi 정보가 없습니다” 에서 멈췄습니다. 윈도우 쪽에서 프로필을 하나도 못 꺼낸 건데, 이건 Windows 11 24H2 의 위치 권한 때문이었습니다. 그 이야기는 다음 글에 적었습니다.


넘긴 Wi-Fi 비밀번호는 고객 PC 디스크에 남는 거라 지우는 시점을 정해 두었습니다. PE 부팅을 취소하거나, 준비가 실패하거나, 지원이 끝나면 지웁니다. 같은 파티션에 윈도우를 새로 깔면 파티션째 사라지고요.

이 방법에도 한계는 있습니다. PE 에 그 노트북의 무선 랜 드라이버가 없으면 프로필이 있어도 연결할 수 없습니다.

윈도우 시리즈의 글

완료 글 30개 인터넷