VPN 연결은 로그온 스크립트를 다시 실행하지 않습니다
로그온 스크립트는 로그온 시 실행되며 터널이 나타날 때 실행되지 않습니다. 시작, 로그온, 백그라운드 새로 고침을 구분하고 연결 시 작업을 트리거하세요.
사용자는 집에서 로그인하고 VPN에 연결한 뒤 예전에 사무실에서 저절로 나타나던 드라이브 매핑을 기다립니다. 터널이 올라오고 도메인이 응답하는데 아무것도 매핑되지 않습니다. 고장이 아닙니다. 로그온 스크립트는 로그온 시 실행되며, 세션이 시작되고 이십 분 뒤 열린 터널은 로그온이 아닙니다. 이 둘을 같은 사건으로 읽으면 존재하지 않는 VPN 결함을 찾아 나서게 됩니다.
네 가지 결정이 이 의외의 상황을 제대로 동작하는 작업 흐름으로 바꿉니다. 첫째는 스크립트가 어느 이벤트에 얹혀 있는지 아는 것입니다.
스크립트는 재생할 수 없는 수명 주기 이벤트에 얹혀 있습니다
컴퓨터 쪽 정책은 컴퓨터가 부팅될 때, 사용자 쪽 정책은 누군가 로그온할 때 적용되며, 백그라운드 새로 고침은 아무것도 다시 시작하지 않고 같은 설정을 순회합니다. 그 새로 고침은 스크립트 확장을 처리하지만 개별 스크립트를 다시 실행하지는 않습니다. 개별 스크립트는 시작, 종료, 로그온 또는 로그오프에서만 실행됩니다. 따라서 gpupdate /force 이 성공을 보고해도 매핑은 여전히 없을 수 있고, 깨끗한 새로 고침은 스크립트가 무언가 했다는 증거가 아닙니다.
정책 처리에 관한 Microsoft 참조 문서 는 확장을 처리하는 것과 그 내용을 실행하는 것 사이에 바로 그 경계를 긋습니다. 새로 고침이 스크립트를 다시 실행했어야 한다고 누군가 주장할 때 인용할 페이지입니다.
오프라인에서 실패하는 스크립트만 있는 것은 아닙니다. 로컬이나 캐시된 자료만 읽는 스크립트는 부분적으로 성공했을 수 있지만, 공유에 접근하는 스크립트는 조용히 실패하고 뚜렷한 흔적을 남기지 않습니다. 네트워크를 탓하기 전에 실제 스크립트 경로와 그것이 무엇에 닿는지 확인하세요. 스크립트가 로그온 시 실행되지 않는다는 주장에도 같은 점검이 필요합니다. 예약된 작업이나 클라이언트 동작이 아무도 보지 않는 곳에서 일을 하고 있을 수 있습니다.
작업을 로그온이 아니라 연결에 붙이세요
로그온 스크립트라는 말 뒤에는 세 가지 다른 작업이 숨어 있습니다. 사용자가 연결한 뒤 드라이브를 매핑하는 일, 누군가 로그인하기 전에 컴퓨터 구성을 적용하는 일, 갱신된 정책을 가져오는 일입니다. 기한이 각각 다르고, 로그온 전에 연결이 정말 필요한 것은 두 번째뿐입니다. 요구 사항은 기한을 담은 문장으로 쓰세요. 예를 들어 이 매핑은 터널이 올라온 뒤 일 분 이내에 존재해야 합니다.
연결 후에 해야 하는 작업에는 연결로 트리거되는 작업이나 클라이언트가 지원하는 연결 동작을 사용하세요. 클라이언트가 실제로 어떤 이벤트를 내보내는지 확인해야 합니다. Windows 기본 VPN 클라이언트가 일으키는 이벤트는 타사 클라이언트가 일으키지 않습니다. 로그인 전에 필요한 컴퓨터 구성이라면 지원되는 답은 장치 터널이나 다른 사전 로그온 설계이며, 데스크톱이 나타날 때 실행되는 작업이 아닙니다. 작업이 필요한 ID와 세션에서 실행하세요. SYSTEM으로 만든 매핑은 사용자가 절대 보지 못하는 세션에 들어가기 때문입니다.
행동하기 전에 준비 상태를 시험하고, 크게 실패하세요
연결 이벤트는 DNS나 파일 서버를 쓸 수 있기 전에 도착할 수 있으므로, 작업은 가정하지 말고 필요한 것을 시험해야 합니다. 특정 이름을 확인하고, 특정 연결을 시도하고, 한계와 지연을 두고 재시도하세요. 짧은 루프 안의 Resolve-DnsName files.corp.example 이 아직-아님과 결코-아님을 구분합니다. 마지막 시도 뒤에는 이름과 오류를 담은 구체적인 실패를 보고하세요.
로그 없는 무한 루프는 결코 시작되지 않은 작업과 구별할 수 없고, 오래된 자격 증명과 방화벽 규칙의 차이를 감춥니다.
네 가지를 확인하고, 그다음 반복 가능하게 만드세요
파일럿 중에는 하나가 아니라 네 가지 관찰을 기록하세요. 연결 이벤트가 발생했는지, 작업이 시작되었는지, 자원이 응답했는지, 요청한 변경이 실제로 반영되었는지입니다. 로그가 작업 시작에서 멈춘다면 아무리 기다려도 실제 실패는 보이지 않습니다. 그다음 gpresult /scope user /v 을 실행해 세션이 자기 정책을 무엇이라고 보는지 확인하고, 기대한 설정과 비교하세요. GPO가 적용되었다고 나열하는 보고서도 매핑에 대해서는 아무것도 말해 주지 않습니다.
확대하기 전에 작업을 안전하게 반복할 수 있게 만드세요. 클라이언트는 다시 연결되고 작업은 다시 실행됩니다. 만들기 전에 기존 매핑이나 구성이 있는지 확인하고, 찾은 것을 기록하세요. 일시적인 재연결마다 작업이 중복되는 것이 유용한 작업이 사고가 되는 길입니다.
자동 트리거가 적합하지 않다면 같은 서명된 스크립트를 실행하는 승인된 사용자 동작이 정당한 설계입니다. 로그온 이벤트가 일어난 척하는 대신 시점을 명시합니다.