Коротко — правильно сделать это можно через Планировщик заданий (Task Scheduler): поставить задачу, которая срабатывает при появлении сетевого события (подключение сети) и запускает ваш скрипт/команду включения хот‑спота. При этом в самой команде/скрипте нужно проверить, что именно проводное (Ethernet) соединение поднялось, иначе хот‑спот будет включаться и при подключении Wi‑Fi.
Ниже пошагово + готовый пример.
1) Узнайте, чем вы сейчас включаете хот‑спот
- Если вы при автозапуске использовали команду (например netsh wlan start hostednetwork) — её и будем вызывать.
- Если вы включаете встроенный «Mobile Hotspot» из Настроек (кнопка в Settings), то его «официального» командного API нет — придётся либо управлять Hosted Network (netsh), либо автоматизировать нажатие UI/PowerShell+UIAutomation/AutoHotkey. Напишите, чем вы включали хот‑спот при старте, если нужно — помогу адаптировать скрипт.
2) Посмотреть, какое событие генерируется при подключении Ethernet
- Откройте Просмотр событий → Applications and Services Logs → Microsoft → Windows → NetworkProfile → Operational.
- Подключите/отключите кабель и найдите событие при подключении — обычно это Event ID 10000 (Network connected) от источника NetworkProfile. Это универсальный триггер для «сеть подключилась».
3) Создать задачу в Планировщике (пример)
- Откройте Task Scheduler → Create Task.
- General:
- Name: Start Mobile Hotspot on Ethernet
- Run whether user is logged on or not
- Run with highest privileges
- Configure for: Windows 10/11
- Triggers → New:
- Begin the task: On an event
- Log: Microsoft-Windows-NetworkProfile/Operational
- Source: NetworkProfile
- Event ID: 10000
- (Опционально поставить Delay task for 5–15 seconds, чтобы интерфейсы успели подняться)
- Actions → New:
- Action: Start a program
- Program/script: powershell.exe
- Add arguments: -ExecutionPolicy Bypass -File "C:\Tools\StartHotspotOnEthernet.ps1"
- Conditions/Settings: настроить по необходимости (убрать «Start the task only if the computer is on AC power», выставить попытки при ошибке и т. п.)
- Сохраните задачу.
4) Пример скрипта StartHotspotOnEthernet.ps1
Скрипт сначала проверяет наличие поднятого Ethernet‑интерфейса, только затем запускает команду включения хот‑спота.
Пример (основной вариант, если у вас поддерживается Hosted Network/netsh):
```
# ожидание, чтобы интерфейс успел полностью подняться
Start-Sleep -Seconds 5
# найти активный Ethernet интерфейс (MediaType = 802.3 — Ethernet)
$eth = Get-NetAdapter -ErrorAction SilentlyContinue |
Where-Object { $_.Status -eq 'Up' -and ($_.MediaType -eq '802.3' -or $_.InterfaceDescription -match 'Ethernet') }
if (-not $eth) {
# нет поднятого Ethernet — выходим
exit 0
}
# если используете Hosted Network:
netsh wlan start hostednetwork
# либо вызвать вашу команду/скрипт, который вы используете при автозапуске
# & "C:\Path\To\YourStartHotspotCommand.bat"
```
Если ваш адаптер не поддерживает hostednetwork (netsh), и вы пользуетесь штатным Mobile Hotspot — напишите, как вы включали его раньше. Тогда предложу один из вариантов: автоматизация UI (AutoHotkey) или Powershell с UIAutomaton для нажатия кнопки «Mobile hotspot» в Settings / Action Center.
5) Тестирование и отладка
- Включите задачу вручную для теста (Task Scheduler → Run) — проверьте, что скрипт работает.
- Отключите/подключите кабель — проверьте, что событие срабатывает и запускается задача (в Task Scheduler → History вы увидите срабатывания).
- Если задача срабатывает слишком рано и hotspot не стартует — увеличьте Start-Sleep в скрипте или поставьте Delay trigger на 10–20 сек.
6) Примечания и рекомендации
- Триггер Event ID 10000 срабатывает при любом подключении (Ethernet, Wi‑Fi и т. д.), поэтому проверка на Ethernet в скрипте обязательна, если хотите запускать только по проводному соединению.
- Запускать задачу от имени администратора (Run with highest privileges), если команда включения хот‑спота требует прав.
- Если вы используете встроенный Mobile Hotspot (Settings) и хотите «корректный» способ без UI‑автоматизации — можно настроить ICS (Internet Connection Sharing) и запускать раздачу через netsh/hostednetwork, но это зависит от адаптера и конфигурации провайдера.
Если скажете, как именно вы сейчас включаете хот‑спот при автозапуске (какая команда/скрипт/настройка), я подготовлю точный рабочий скрипт и дам готовую конфигурацию задачи.