Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 10 » Разное - [решено] Сделать все сетевые подключения приватными

Ответить
Настройки темы
Разное - [решено] Сделать все сетевые подключения приватными

Ветеран


Сообщения: 537
Благодарности: 13

Профиль | Отправить PM | Цитировать


Всем привет!
Стоит задача сделать все сети приватными, в том числе для всех новых подключений.
У меня ОС Windows 10 с пользователем admin и произвольным паролем.
Руководствуюсь этой статьёй https://www.winhelponline.com/blog/t...cific-network/
Создаю триггер:
Код: Выделить весь код
<QueryList>
    <Query Id="0" Path="System">
        <Select Path="Microsoft-Windows-NetworkProfile/Operational">
            *[System[(EventID=10000)]] and *[EventData[(Data[@Name="Category"]="0")]]
        </Select>
    </Query>
</QueryList>
Проблема в том, что моё задание ни всегда отрабатывает. Вообще, я ожидаю, что оно будет выполняться всякий раз когда я включаю компьютер независимо от входа пользователя, но похоже это работает как-то иначе. Сразу скажу, что на Windows 7 точно такое же задание с теми же параметрами в планировщике работает исправно. Я конечно же в свойствах задания ставлю флажок «Выполнять вне зависимости от регистрации пользователя» и «Выполнять с наивысшими правами».
Изучая журнал событий, я вижу, что произошло событие с EventID=10000, но моё задание даже не пыталось выполниться.
Заметил, что если запустить систему и в течение нескольких минут авторизоваться в системе под пользователем admin, то задание выполняется успешно. Если же я после включения системы не ввожу данные пользователя, но после некоторого простоя, всё же авторизуюсь под пользователем admin, вижу что моё задание не выполнялось.

Подскажите, что я делаю неправильно...
Заранее спасибо.

Отправлено: 11:02, 16-12-2020

 

(*.*)


Сообщения: 36574
Благодарности: 6711

Профиль | Сайт | Отправить PM | Цитировать


Цитата berkut_174:
Вообще, я ожидаю, что оно будет выполняться всякий раз когда я включаю компьютер независимо от входа пользователя »
Для этого надо настроить сей аспект, а как у вас настроено никто кроме вас не знает. Экспортируйте задание что-ли... или скриншоты вкладки Общие хотя бы.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 14:01, 16-12-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 537
Благодарности: 13

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
никто кроме вас не знает »
Сразу не сообразил...

Исправился:
Код: Выделить весь код
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2020-12-16T16:31:46.8055806</Date>
    <Author>WIN10\admin</Author>
    <URI>\change the network to private</URI>
  </RegistrationInfo>
  <Triggers>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="System"&gt;&lt;Select Path="Microsoft-Windows-NetworkProfile/Operational"&gt;
            *[System[(EventID=10000)]] and *[EventData[(Data[@Name="Category"]="0")]]
        &lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
    </EventTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\start.cmd</Command>
    </Exec>
  </Actions>
</Task>

Отправлено: 14:41, 16-12-2020 | #3


Ветеран


Сообщения: 537
Благодарности: 13

Профиль | Отправить PM | Цитировать


Я вот похоже действительно где то неправильно делаю...
Слабал сейчас задание на основе команд по вашей ссылке, вроде пока всегда нормально меняется, проверю ещё более детально.
Спасибо, хоть по-человечески теперь задания создавать научился....

Отправлено: 15:18, 16-12-2020 | #4


(*.*)


Сообщения: 36574
Благодарности: 6711

Профиль | Сайт | Отправить PM | Цитировать


berkut_174, там дело не в командах, а в том:
- для одной или всех УЗ выполняется
- от имени какой УЗ выполняется
- сохранен ли пароль для УЗ, если он имеется

Команды - лишь средство настройки тем или иным образом.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 15:54, 16-12-2020 | #5


Ветеран


Сообщения: 537
Благодарности: 13

Профиль | Отправить PM | Цитировать


Vadikan
Пароль я сохранял, сейчас сделал от имени системы, пароль admin не запрашивался.
В итоге, всё то же самое — система запустилась, событие есть в журнале, но моё задание даже не пыталось запуститься. Ждал я примерно около 120 секунд, потом вошёл под пользователем и сделал снимки (https://ibb.co/6sD19dx, https://ibb.co/hKsQ3HC).

Добавлял в этот раз вот так:
Код: Выделить весь код
$userid = "NT AUTHORITY\SYSTEM"
$taskname = "Change the network to private"
$principal = New-ScheduledTaskPrincipal -UserId $userid -LogonType ServiceAccount
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -StartWhenAvailable
$action = New-ScheduledTaskAction -Execute "C:\change_network_private.cmd"
$cimclass = cimclass MSFT_TaskEventTrigger root/Microsoft/Windows/TaskScheduler
$trigger = $cimclass | New-CimInstance -ClientOnly
$trigger.Enabled = $true
$trigger.Subscription = "<QueryList><Query Id='0' Path='System'><Select Path='Microsoft-Windows-NetworkProfile/Operational'>*[System[(EventID=10000)]] and *[EventData[(Data[@Name='Category']='0')]]</Select></Query></QueryList>"
# register task
Register-ScheduledTask -TaskName $taskname -Action $action -Settings $settings -Principal $principal
# add trigger
Set-ScheduledTask -TaskName $taskname -Trigger $trigger

Последний раз редактировалось berkut_174, 16-12-2020 в 17:48.


Отправлено: 17:36, 16-12-2020 | #6


Ветеран


Сообщения: 537
Благодарности: 13

Профиль | Отправить PM | Цитировать


Я забыл упомянуть важный момент. Если я руками делаю Disable() для сетевого адаптера, а потом обратно Enable(), то моё задание отрабатывает. То есть оно в принципе читает указанное мной событие, но почему то не срабатываем именно при включении ОС.
Я пробовал ставить задержку, таймауты в скрипт... всегда как-то через раз срабатывает, ненадёжно.

Отправлено: 18:17, 16-12-2020 | #7


(*.*)


Сообщения: 36574
Благодарности: 6711

Профиль | Сайт | Отправить PM | Цитировать


berkut_174, а почему у вас @Name='Category']='0'? Я бы навскидку сказал, что нужно 1.

Я смотрю у себя, этому соответствует
Код: Выделить весь код
- <EventData>
  <Data Name="Name">Identifying...</Data> 
  <Data Name="Description">Identifying...</Data> 
  <Data Name="Guid">{c7f91c64-cd09-4ccc-ace1-88723a6c15b1}</Data> 
  <Data Name="Type">0</Data> 
  <Data Name="State">9</Data> 
  <Data Name="Category">0</Data> 
  </EventData>

И напротив, когда выполняется подключение, в этих данных SSID

Код: Выделить весь код
- <EventData>
  <Data Name="Name">mySSID</Data> 
  <Data Name="Description">mySSID</Data> 
  <Data Name="Guid">{721bca8a-8367-494d-b5f1-a592ce623b5d}</Data> 
  <Data Name="Type">0</Data> 
  <Data Name="State">9</Data> 
  <Data Name="Category">1</Data> 
  </EventData>
Цитата berkut_174:
Если я руками делаю Disable() для сетевого адаптера, а потом обратно Enable(), то моё задание отрабатывает. То есть оно в принципе читает указанное мной событие, но почему то не срабатываем именно при включении ОС. »
Тогда есть варианты:
- дальше пытаться разбираться почему не срабатывает при включении
- выполнять задание с задержкой, задавая это в настройках задания или в скрипте
- скриптом перезагружать адаптер https://t.me/sterkin_ru/953

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 18:17, 16-12-2020 | #8


Ветеран


Сообщения: 537
Благодарности: 13

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
Я бы навскидку сказал, что нужно 1. »
Потому что мне нужно наоборот заменить 0 на 1, так как 0 — публичная, 1 — приватная.

Цитата Vadikan:
- дальше пытаться разбираться почему не срабатывает при включении »
Я уже всеми частями тела помогаю... не выходит...
На Windows 7 даже экспортом с Windows 10 сейчас это же задание импортнул — работает железно.

Цитата Vadikan:
- выполнять задание с задержкой, задавая это в настройках задания или в скрипте »
Ненадёжно, на одной машине сработает, на другой нет, да и не всегда такая задержка помогает, к сожалению. Статистика плачевная тут у меня.

Цитата Vadikan:
- скриптом перезагружать адаптер https://t.me/sterkin_ru/953 »
Мдя... то есть при старте машины делать отключение/включение адаптера ? Вариант, конечно, но чё то колхоз...

Отправлено: 18:30, 16-12-2020 | #9


(*.*)


Сообщения: 36574
Благодарности: 6711

Профиль | Сайт | Отправить PM | Цитировать


Цитата berkut_174:
Потому что мне нужно наоборот заменить 0 на 1, так как 0 — публичная, 1 — приватная. »
Ок, но если вам нужно менять профиль для сетей, которые в процессе идентификации (Identifying) или не идентифицированных (Unidentified), это можно сделать политикой https://docs.microsoft.com/en-us/win...nager-policies (Она не позволяет настроить все будущие сети)

А событие уже отлавливать конкретно такое, в котором есть SSID. Ну и дальше уже выполнять скрипт ваш, чем вы там меняете профиль... тут пош https://superuser.com/a/728776

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:40, 16-12-2020 | #10



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 10 » Разное - [решено] Сделать все сетевые подключения приватными

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как скрыть значок определённого подключения из папки "сетевые подключения"? Solnyshko Хочу все знать 6 06-06-2020 10:36
Прочее - Сетевые подключения: два подключения..одно вроде через другой комп AVERm Сетевые технологии 7 07-04-2010 15:22
Интернет - [решено] Пропали все сетевые подключения и вновь не создаются MXMX Microsoft Windows 2000/XP 7 20-05-2009 19:09
[решено] Не видны подключения по локальной сети в папке "Сетевые подключения" Skoba Microsoft Windows NT/2000/2003 12 08-10-2007 09:06
сетевые подключения Daniil Сетевые технологии 3 19-09-2003 11:05




 
Переход