- [+] Сьогодні в програмі
- Що говорить довідка Windows
- Де зберігаються профілі бездротових мереж
- Як виглядає профіль
- Видалення профілів за допомогою пошуку
- Бонус: видалення всіх відкритих бездротових мереж
У міру розвитку Windows в ній з'являються нові можливості і пропадають старі. Однак деякі з них не зникають безслідно з операційної системи, а лише виключаються з графічного інтерфейсу. Сьогоднішня замітка з тієї ж серії, що і розповіді про попередніх версіях файлів і резервне копіювання за розкладом .
Читач Анатолій запитав у пошті, як видалити бездротові мережі, до яких його планшет коли-небудь підключався. Моя посилання на довідку породила друге питання, на який я пообіцяв відповісти в блозі відповідно до його девізом .
[+] Сьогодні в програмі
Історія питання
Коли ви підключаєтеся до мережі Wi-Fi, Windows запам'ятовує її профіль - SSID (ім'я мережі), ключ і параметри аутентифікації, щоб наступного разу не ставити зайвих запитань. У Windows 7 до вікна «Управління бездротовими мережами» можна дістатися з центру управління мережами або пошуком.
Однак в Windows 8 цей елемент панелі керування заблокували. Забути окрему мережу з поточного радіуса дії Wi-Fi можна було в контекстному меню.
У Windows 8.1 можна швидко забути мережу, коли до неї вдається підключитися. А управління мережами з'явилося в сучасній же панелі управління: Параметри ПК - Мережа - Підключення - WiFi-Управління відомими мережами (спасибі читачеві Niks).
Причому список бездротових мереж синхронізується між усіма пристроями, в які ви входите з обліковим записом Microsoft, в тому числі і на Windows Phone.
В панелі управління можна видаляти мережі тільки по одній. Я покажу вам прийом масового видалення мереж, який можна застосовувати для вирішення інших завдань у всіх сучасних ОС Windows.
Що говорить довідка Windows
Там досі написано , Що потрібно використовувати командний рядок (таке рідко зустрічається в довідці для домашніх користувачів :) Дійсно, можна подивитися список профілів і видалити непотрібні.
netsh wlan show profiles netsh wlan delete profile name = "Тут ім'я профілю"
У мене мереж трохи ...
... але Анатолій поцікавився, чи не можна якось спростити процес, тому що у нього їх штук 30, а потрібно залишити лише 3-4. У команди є параметр name, що допускає символи узагальнення (наприклад, * як будь-якого символу), але я не побачив, як це допоможе вирішити задачу.
Тут гуру CMD-скриптів, напевно, розчохлив б команду FOR, але мені це не зубам. Ми підемо іншим шляхом ©
Де зберігаються профілі бездротових мереж
За допомогою Process Monitor я швидко з'ясував , Що Windows зберігає профілі мереж Wi-Fi в папці
% ProgramData% \ Microsoft \ Wlansvc \ Profiles \ Interfaces
Тут кожному інтерфейсу відповідає папка, ім'ям якої є ідентифікатор мережевого адаптера (GUID), у чому можна переконатися в командному рядку:
netsh wlan show interface
або в PowerShell 4.0 і вище:
Get-NetAdapter | fl name, interfaceguid
Як виглядає профіль
Відкривши папку GUID, ви побачите XML-файли, кожен з яких є профілем (його ім'я вказано в вузлі Name).
Видалення файлу еквівалентно видаленню профілю!
Але як відокремити мух від котлет, тобто 3 потрібних профілю від 30 непотрібних? Тут гуру PowerShell, напевно, розчохлив б командлети dir і foreach , обробив XML і видалив непотрібні файли Командлети del. Я міг би таке провернути ... за кілька годин :) Тому ми підемо ... ви вже здогадалися, яким шляхом?
Видалення профілів за допомогою пошуку
Перша команда в статті дає список всіх профілів, тому ви точно знаєте імена тих, які хочете зберегти.
Залишається лише знайти всі небажані профілі одним махом, тобто скласти пошуковий запит , Що виключає потрібні імена.
Але тут є один нюанс. папка ProgramData не індексується автоматично, тому вміст файлів не потрапляє в індекс. Однак для такого пошуку є спеціальний фільтр вміст (content), який вирішує завдання.
Приклад виключення однієї мережі:
вміст: -vad
Приклад виключення двох мереж:
вміст: - (roku OR radar)
Оператор «мінус» виключає з результатів пошуку файли, в тексті яких містяться зазначені імена.
Всі знайдені файли можна видалити! Переконатися в результаті дозволяє команда netsh (якщо змін не видно, перезавантажитеся). Зверніть увагу, що при великій кількості мереж навіть в Windows 7 цей спосіб веде до мети швидше, ніж видалення кожної мережі в панелі управління.
Бонус: видалення всіх відкритих бездротових мереж
Збережені профілі відкритих бездротових мереж теоретично небезпечні тим, що зловмисники можуть створити підроблену мережу з таким же ім'ям, і ваш ПК підключиться до неї автоматично. Програміст, напевно, розчохлив б C # і написав утиліту для видалення таких мереж, як це зробив Скотт Хансельман :)
Але ви вже знаєте просте рішення - адже в XML-файлі відкритої мережі в вузлі authentication написано open. Всі відкриті мережі знаходяться так:
вміст: "open <"
Включати в запит символ <(фрагмент тега XML) необов'язково, але це страхує від випадкового видалення мереж, що містять в імені слово open.
Якщо ви часто видаляєте профілі, вам стане в нагоді кнопка «Зберегти умови пошуку» на панелі провідника. Але так, бажаючим поставити справу на потік планувальника завдань не обійтися без скрипта PowerShell або сторонньої утиліти .
А як би ви вирішували це завдання? Що вам ближче - CMD, PowerShell, C #, сторонні утиліти або просто пошук? :)
Це була реклама «стандартного функціоналу», який «знаходиться на увазі», і конкурсу фішок Windows .
Обговорення завершено.
Але як відокремити мух від котлет, тобто 3 потрібних профілю від 30 непотрібних?Ви вже здогадалися, яким шляхом?
А як би ви вирішували це завдання?
Що вам ближче - CMD, PowerShell, C #, сторонні утиліти або просто пошук?