![]() |
Сделать все сетевые подключения приватными
Всем привет!
Стоит задача сделать все сети приватными, в том числе для всех новых подключений. У меня ОС Windows 10 с пользователем admin и произвольным паролем. Руководствуюсь этой статьёй https://www.winhelponline.com/blog/t...cific-network/ Создаю триггер: Код:
<QueryList> Изучая журнал событий, я вижу, что произошло событие с EventID=10000, но моё задание даже не пыталось выполниться. Заметил, что если запустить систему и в течение нескольких минут авторизоваться в системе под пользователем admin, то задание выполняется успешно. Если же я после включения системы не ввожу данные пользователя, но после некоторого простоя, всё же авторизуюсь под пользователем admin, вижу что моё задание не выполнялось. Подскажите, что я делаю неправильно... Заранее спасибо. |
Цитата:
|
Цитата:
Исправился: Код:
<?xml version="1.0" encoding="UTF-16"?> |
Я вот похоже действительно где то неправильно делаю...
Слабал сейчас задание на основе команд по вашей ссылке, вроде пока всегда нормально меняется, проверю ещё более детально. Спасибо, хоть по-человечески теперь задания создавать научился.... |
berkut_174, там дело не в командах, а в том:
- для одной или всех УЗ выполняется - от имени какой УЗ выполняется - сохранен ли пароль для УЗ, если он имеется Команды - лишь средство настройки тем или иным образом. |
Vadikan
Пароль я сохранял, сейчас сделал от имени системы, пароль admin не запрашивался. В итоге, всё то же самое — система запустилась, событие есть в журнале, но моё задание даже не пыталось запуститься. Ждал я примерно около 120 секунд, потом вошёл под пользователем и сделал снимки (https://ibb.co/6sD19dx, https://ibb.co/hKsQ3HC). Добавлял в этот раз вот так: Код:
$userid = "NT AUTHORITY\SYSTEM" |
Я забыл упомянуть важный момент. Если я руками делаю Disable() для сетевого адаптера, а потом обратно Enable(), то моё задание отрабатывает. То есть оно в принципе читает указанное мной событие, но почему то не срабатываем именно при включении ОС.
Я пробовал ставить задержку, таймауты в скрипт... всегда как-то через раз срабатывает, ненадёжно. |
berkut_174, а почему у вас @Name='Category']='0'? Я бы навскидку сказал, что нужно 1.
Я смотрю у себя, этому соответствует Код:
- <EventData> И напротив, когда выполняется подключение, в этих данных SSID Код:
- <EventData> Цитата:
- дальше пытаться разбираться почему не срабатывает при включении - выполнять задание с задержкой, задавая это в настройках задания или в скрипте - скриптом перезагружать адаптер https://t.me/sterkin_ru/953 |
Цитата:
Цитата:
На Windows 7 даже экспортом с Windows 10 сейчас это же задание импортнул — работает железно. Цитата:
Цитата:
|
Цитата:
А событие уже отлавливать конкретно такое, в котором есть SSID. Ну и дальше уже выполнять скрипт ваш, чем вы там меняете профиль... тут пош https://superuser.com/a/728776 |
Цитата:
В общем печально, ума не приложу почему на Windows 10 не хочет нормально выполняться рабочий вариант конфига задания... жаль. |
berkut_174, так вы отлавливайте планировщиком событие, а в скрипте анализируйте содержимое последнего события. Если в нем identifying или unidentified, ничего не делайте. Иначе берите оттуда SSID и меняйте профиль.
Либо просто все сети делайте приватными по событию, скрипт по ссылке выше. |
Vadikan, чего же вы раньше не дали этой ссылки... я проглядел...
Мне ведь действительно в идеале не нужно ничего отлавливать, мне нужно чтобы все сети были приватными по умолчанию. Это именно то, что нужно! Благодарю. |
Цитата:
|
Vadikan, есть, но он почему-то ни всегда срабатывал, если добавить его в планировщик при запуске ОС. В прочем посмотрим, как этот себя будет вести, вероятно, могут быть аналогичные проблемы, надо больше тестов.
Тем более по ссылке уж больно короткий оказался, у меня основной через изменение реестра и ещё вот такой: Код:
Get-NetConnectionProfile | Where{ $_.NetWorkCategory -ne 'Private'} | ForEach {$_|Set-NetConnectionProfile -NetWorkCategory Private} |
berkut_174, скрипт меняет профиль всех имеющихся сетей. Будущие сделать частными невозможно.
|
Vadikan, ох, тогда я снова могу попасть в такую ситуацию, что задание выполняемое при запуске, будет завершено, когда ещё сеть не была инициализирована, соответственно кина не будет...
Такое ведь возможно ? |
Собственно говоря, именно потому что мой скрипт ни всегда корректно отрабатывал, когда использовался триггер «при запуске системы», я начал отлавливать событие с ID = 10000. На Windows 7 это сработало безукоризненно, но на Windows 10 с попеременным успехом...
|
Цитата:
|
Цитата:
Цитата:
Код:
$e = Get-WinEvent -Maxevents 1 -FilterHashtable @{logname="Microsoft-Windows-NetworkProfile/Operational"; id=10000} |
Vadikan, я поблагодарил за скрипт :)
Код:
# Skip network location setting for pre-Vista operating systems Цитата:
|
Цитата:
Цитата:
![]() Через пять минут после запуска ОС запускается скрипт и анализирует события. В примере моего скрипта только последнее, но ничто не мешает выбирать последние N и перебирать их с ForEach-Object. Поскольку повторяться мне уже поднадоело, я ожидаю конкретных результатов отработки скрипта с разных машин, запущенного с условием выше. Код:
$e = Get-WinEvent -Maxevents 5 -FilterHashtable @{logname="Microsoft-Windows-NetworkProfile/Operational"; id=10000} |
Vadikan, отмёл я вариант с задержкой, потому что мне он не очень нравится, ну вдруг будет все пять минут сеть отсутствовать...
В итоге, пришёл к двум рабочим вариантам:
Поэтому окончательный вариант буду использовать такой: Код:
$userid = "NT AUTHORITY\SYSTEM" Всем спасибо! |
berkut_174, я вижу, что вы довольны, но все-таки хотелось бы добить вопрос с точки зрения эффективности.
Как я понял, задержка вас не устроила из-за того, что сети могут очень долго проходить идентификацию (обозначу их И). Но это ведь легко решается тем же скриптом. 1. Берем все сети и смотрим, есть ли там И. 2. Если - нет, назначаем всем сетям частный профиль и завершаем скрипт - да, ставим скрипт на паузу N минут, после чего возвращаемся к п.1 Рано или поздно сеть должна либо идентифироваться, либо стать неидентифицированной. Ну и в конце концов можно в скрипте задать число таких проверок, скажем 6 каждые 10 минут. При этом политикой для всех И задан частный профиль. |
Время: 23:38. |
Время: 23:38.
© OSzone.net 2001-