Tôi có tập lệnh PowerShell bổ sung địa chỉ IP vào Tường lửa Windows bằng lệnh "Netsh advfirewall". (Như được mô tả trong câu hỏi này: Làm thế nào để nối các quy tắc tường lửa Netsh, không chỉ thay thế ).
Vấn đề là khi thêm nhiều địa chỉ IP (hiện có trên 700), chuỗi địa chỉ IP dường như bị 'cắt đứt' tại một số điểm. Chỉ có một lượng X trong tổng số lượng địa chỉ IP thực sự được thêm vào tường lửa, phần còn lại ... thì không.
Kịch bản rất đơn giản và trông giống như thế này:
$ip = "123.123.123.123,124.124.124.124,125.125.125.125 and so on"
netsh advfirewall firewall set rule name="*" new remoteip="$ip"
Tôi đã cố gắng lặp lại chuỗi để xem nếu nó bị cắt;
echo $ip
Nhưng chuỗi hoàn chỉnh được lặp lại chính xác.
Có một số loại giới hạn độ dài chuỗi cho lệnh Netsh? Hoặc bất cứ điều gì khác có thể gây ra vấn đề này?
Chỉnh sửa
Tôi đã thực hiện một số nghiên cứu thêm và có vẻ như chuỗi không bị 'cắt đứt'. Tôi đã sắp xếp lại chuỗi IP theo thứ tự tăng dần và địa chỉ IP cuối cùng của chuỗi đã được thêm vào tường lửa. Vì vậy, tôi cho rằng tôi có thể kết luận rằng không có một số loại giới hạn chuỗi.
Tuy nhiên, IP ngẫu nhiên đang bị bỏ qua. Tôi đã viết một số tập lệnh 'gỡ lỗi' để tìm hiểu chuyện gì đang xảy ra, một trong những tập lệnh đó tạo ra một danh sách các địa chỉ IP nằm trong chuỗi IP (và do đó được cho là nằm trong tường lửa), nhưng không có trong bức tường lửa. Hóa ra là nó chỉ đơn giản là bỏ qua các địa chỉ IP ngẫu nhiên ... và tôi không biết tại sao ...
Các địa chỉ IP đang bị bỏ qua là các địa chỉ IP hoàn toàn tốt (không phải là phạm vi hoặc bất cứ điều gì, chỉ là các địa chỉ IP thông thường).
Có ý kiến gì không?