|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 10 » Разное - [решено] Сделать все сетевые подключения приватными |
|
|||||
|
|
Разное - [решено] Сделать все сетевые подключения приватными
|
|
Ветеран Сообщения: 537 |
Всем привет!
Стоит задача сделать все сети приватными, в том числе для всех новых подключений. У меня ОС 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 |
|
(*.*) Сообщения: 36574
|
Профиль | Сайт | Отправить 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 |
|
(*.*) Сообщения: 36574
|
Профиль | Сайт | Отправить 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 | |
|