Chạy tác vụ khi VPN kết nối: sự kiện, thăm dò hay thông tin xác thực?
Script đăng nhập chạy trước khi đường hầm tồn tại. So sánh trình kích hoạt sự kiện mạng, thăm dò tài nguyên và thông tin xác thực được lưu theo những gì mỗi cách đảm bảo.
Script đăng nhập ánh xạ ổ đĩa hoặc khởi động tác vụ đồng bộ chạy trước khi đường hầm có địa chỉ, nên nó âm thầm thất bại và người dùng phải sửa bằng tay mỗi sáng. Windows không cung cấp cho hầu hết ứng dụng khách lệnh gọi lại khi kết nối cho từng VPN, nhưng nó ghi lại thay đổi mạng, và bản ghi đó có thể khởi động công việc đúng lúc. Lựa chọn nằm giữa phản ứng với bản ghi đó, thăm dò tài nguyên và xóa lời nhắc đã khiến lỗi hiện rõ.
So sánh ba cơ chế theo những gì chúng đảm bảo tốt hơn là xếp hạng chúng theo vẻ thanh lịch. Mỗi cách thất bại khác nhau, và kiểu thất bại là thứ bạn sống cùng sau đó.
Vì sao đăng nhập chạy quá sớm
Đăng nhập và khởi động chạy trước khi bộ điều hợp VPN nhận được địa chỉ, vì vậy ánh xạ ổ đĩa, URL nội bộ hoặc kết nối cơ sở dữ liệu được thử tại thời điểm đó không có tuyến cũng không có trình phân giải. Yêu cầu thất bại, và phiên bị bỏ lại trong trạng thái mà người dùng phải sửa thủ công. Chuyển cùng script sang thư mục khởi động không thay đổi gì, vì vấn đề thứ tự di chuyển cùng nó. Trình kích hoạt phải là thay đổi mạng chứ không phải sự kiện phiên.
Một tác vụ được lên lịch khi đăng nhập với độ trễ tùy ý trông giống bản sửa lỗi và thực ra là một phỏng đoán. Nó hoạt động trên liên kết nhanh và thất bại trên liên kết chậm, đây là kiểu độ tin cậy ít hữu ích nhất.
Ba móc nối được so sánh
Các cơ chế khác nhau ở những gì chúng quan sát, tốc độ phản ứng và những gì chúng làm với việc kết nối lại sau đó trong ngày. Bảng so sánh chúng ở ba điểm đó chứ không phải ở mức độ thông minh của mỗi cách.
| Mechanism | Reacts to | Covers a mid-session reconnect | Typical failure |
|---|---|---|---|
| Network profile event | A network connect record | Yes, when the event repeats | Runs on the wrong network |
| Resource poll with backoff | The resource becoming reachable | Yes | Log noise and a wasted window |
| Stored credentials alone | Nothing; it removes a prompt | No | Still fires before the tunnel |
Đọc bảng theo từng hàng. Móc nối sự kiện nhanh nhất và ồn ào nhất, vì Windows ghi lại mọi mạng bao gồm Wi-Fi của quán cà phê, nên hành động phải xác minh tài nguyên trước khi làm bất cứ điều gì. Việc thăm dò chậm hơn và chính xác hơn, vì nó thành công đúng khi tài nguyên chia sẻ hoặc tên máy chủ trả lời, và nó không cần biết ứng dụng khách nào đã cài. Thông tin xác thực được lưu hoàn toàn không phải lựa chọn cạnh tranh: chúng xóa lời nhắc mật khẩu, đây là lý do thứ hai và độc lập khiến ánh xạ lúc đăng nhập thất bại.
Chọn giữa hai cách đầu phụ thuộc vào việc có sự kiện dùng được trên máy khách hay không. Ở nơi có, sự kiện cộng kiểm tra tài nguyên là mặc định tốt hơn.
Xây dựng trình kích hoạt sự kiện đúng cách
Bản ghi nằm trong nhật ký Microsoft-Windows-NetworkProfile/Operational, và ID 10001 đánh dấu một mạng vừa kết nối. Tạo tác vụ với trình kích hoạt Khi có sự kiện nhắm vào nhật ký đó, tên nhà cung cấp đó và mã định danh đó. Mọi mạng mà máy tham gia sẽ kích hoạt nó, nên hành động cần một mệnh đề bảo vệ chứ không phải giả định, và chỉ nên chạy khi người dùng đã đăng nhập nếu công việc chạm vào ổ đĩa được ánh xạ.
Mệnh đề bảo vệ nên kiểm tra những gì tác vụ thực sự cần, chẳng hạn đường dẫn chia sẻ hoặc cổng dịch vụ, và thoát lặng lẽ khi không thể truy cập. Kiểm tra tên bộ điều hợp là không đủ, vì ứng dụng khách có thể dùng lại một bộ điều hợp qua nhiều cấu hình. Thoát lặng lẽ giữ nhật ký dễ đọc và ngăn cơn bão thử lại chống lại một mạng sẽ không bao giờ cung cấp tài nguyên.
Kiểm tra rằng tác vụ chạy đúng thời điểm
Chứng minh thời điểm chứ không phải cấu hình. Các lệnh dưới đây hiển thị định nghĩa tác vụ, các sự kiện hồ sơ mạng gần đây và việc tài nguyên có thể truy cập từ tài khoản mà tác vụ chạy hay không. Chạy chúng sau một lần kết nối lại thật chứ không phải sau khi khởi động thủ công.
schtasks /query /tn "VpnPostConnect" /v /fo LIST
Get-WinEvent -LogName Microsoft-Windows-NetworkProfile/Operational -MaxEvents 10
Test-Path \\fileserver\share
whoami
Một mục trong lịch sử tác vụ tồn tại trong khi không có sự kiện mạng nào khớp nghĩa là trình kích hoạt sai chứ không phải hành động. Nếu sự kiện xuất hiện mà tác vụ không chạy, tác vụ có thể đang chạy dưới một tài khoản không thấy tài nguyên, và đầu ra của tài khoản là manh mối. Một kiểm tra tài nguyên thành công trong khi ánh xạ vẫn thiếu chỉ vào ngữ cảnh phiên chứ không phải kết nối. Mỗi quan sát trong ba quan sát đó dẫn bạn đến một bản sửa khác.
Viết một dòng nhật ký cho mỗi lần chạy với địa chỉ, kết quả tài nguyên và kết quả cuối cùng. Lần thất bại tiếp theo sẽ cho thấy tác vụ chạy sớm, chạy trên mạng sai hay không chạy chút nào.