|
Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 10 » Разное - [решено] Сделать все сетевые подключения приватными |
|
|
Разное - [решено] Сделать все сетевые подключения приватными
|
Ветеран Сообщения: 537 |
Профиль | Отправить 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> Изучая журнал событий, я вижу, что произошло событие с EventID=10000, но моё задание даже не пыталось выполниться. Заметил, что если запустить систему и в течение нескольких минут авторизоваться в системе под пользователем admin, то задание выполняется успешно. Если же я после включения системы не ввожу данные пользователя, но после некоторого простоя, всё же авторизуюсь под пользователем admin, вижу что моё задание не выполнялось. Подскажите, что я делаю неправильно... Заранее спасибо. |
|
Отправлено: 11:02, 16-12-2020 |
Ветеран Сообщения: 537
|
Профиль | Отправить PM | Цитировать Vadikan, я поблагодарил за скрипт
# Skip network location setting for pre-Vista operating systems if([environment]::OSVersion.version.Major -lt 6) { return } # Skip network location setting if local machine is joined to a domain. if(1,3,4,5 -contains (Get-WmiObject win32_computersystem).DomainRole) { return } # Get network connections $networkListManager = [Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]"{DCB00C01-570F-4A9B-8D69-199FDBA5723B}")) $connections = $networkListManager.GetNetworkConnections() # Set network location to Private for all networks $connections | % {$_.GetNetwork().SetCategory(1)} Цитата Anton04:
|
|
Отправлено: 13:40, 17-12-2020 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
(*.*) Сообщения: 36491
|
Профиль | Сайт | Отправить PM | Цитировать Цитата berkut_174:
Цитата berkut_174:
Через пять минут после запуска ОС запускается скрипт и анализирует события. В примере моего скрипта только последнее, но ничто не мешает выбирать последние N и перебирать их с ForEach-Object. Поскольку повторяться мне уже поднадоело, я ожидаю конкретных результатов отработки скрипта с разных машин, запущенного с условием выше. $e = Get-WinEvent -Maxevents 5 -FilterHashtable @{logname="Microsoft-Windows-NetworkProfile/Operational"; id=10000} $e | ForEach-Object { $xml = [xml]$_.ToXml() $SSID = $xml.Event.EventData.Data[1]."#text" #if ($SSID -notlike '*iden*') {Set-NetConnectionProfile -Name $SSID -NetworkCategory "Private"} if ($SSID -notlike '*iden*') {Get-Date; $SSID | Out-File C:\temp\ssid.txt -Append} } |
|||
Отправлено: 14:46, 17-12-2020 | #22 |
Ветеран Сообщения: 537
|
Профиль | Отправить PM | Цитировать Vadikan, отмёл я вариант с задержкой, потому что мне он не очень нравится, ну вдруг будет все пять минут сеть отсутствовать...
В итоге, пришёл к двум рабочим вариантам:
Поэтому окончательный вариант буду использовать такой: $userid = "NT AUTHORITY\SYSTEM" $taskname = "Set all network profiles to private" $principal = New-ScheduledTaskPrincipal -UserId $userid -LogonType ServiceAccount $trigger = @($(New-ScheduledTaskTrigger -AtStartup)) $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -StartWhenAvailable $execute = "powershell" $argument = "-WindowStyle Hidden -command `"[Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')).GetNetworkConnections() | % {`$_.GetNetwork().SetCategory(1)}`"" $action = New-ScheduledTaskAction -Execute $execute -Argument $argument $cimclass = cimclass MSFT_TaskEventTrigger root/Microsoft/Windows/TaskScheduler $triggerevent = $cimclass | New-CimInstance -ClientOnly $triggerevent.Enabled = $true $triggerevent.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-ScheduledTask -TaskName $taskname -Action $action -Trigger $trigger -Settings $settings -Principal $principal Set-ScheduledTask -TaskName $taskname -Trigger $((Get-ScheduledTask -TaskName $taskname).triggers + $triggerevent) Всем спасибо! |
Последний раз редактировалось berkut_174, 17-12-2020 в 16:26. Отправлено: 16:03, 17-12-2020 | #23 |
(*.*) Сообщения: 36491
|
Профиль | Сайт | Отправить PM | Цитировать berkut_174, я вижу, что вы довольны, но все-таки хотелось бы добить вопрос с точки зрения эффективности.
Как я понял, задержка вас не устроила из-за того, что сети могут очень долго проходить идентификацию (обозначу их И). Но это ведь легко решается тем же скриптом. 1. Берем все сети и смотрим, есть ли там И. 2. Если - нет, назначаем всем сетям частный профиль и завершаем скрипт - да, ставим скрипт на паузу N минут, после чего возвращаемся к п.1 Рано или поздно сеть должна либо идентифироваться, либо стать неидентифицированной. Ну и в конце концов можно в скрипте задать число таких проверок, скажем 6 каждые 10 минут. При этом политикой для всех И задан частный профиль. |
------- Отправлено: 16:36, 18-12-2020 | #24 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как скрыть значок определённого подключения из папки "сетевые подключения"? | 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 |
|