Использование Windows 10/11 в составе рабочих групп.



    Любой компьютер с операционной системой Microsoft Windows, должен обязательно принадлежать либо к рабочей группе, либо к домену. Рабочая группа (WORKGROUP) - это группа компьютеров локальной сети, созданная для совместного использования сетевых ресурсов (файлов, папок, принтеров и т.п.). Рабочие группы, в отличие от доменов, являются простой и недорогой реализацией сетевой инфраструктуры небольших офисов, предприятий, домашних сетей и т.п. Главным отличием рабочих групп от доменов является отсутствие централизованного управления компьютерами и пользователями с использованием серверных операционных систем Microsoft Windows. Все компьютеры рабочей группы являются ее равноправными членами, тем не менее, любой из них может стать основным или резервным Обозревателем сети (Computer Browser, Браузером компьютеров) на основании так называемых выборов (election). Выборы представляют собой технологию, благодаря которой в группе компьютеров локальной сети всегда будет присутствовать хотя бы один, обслуживающий список сетевых ресурсов рабочей группы. При чем, выключение или неисправность Обозревателя компьютеров вызовет процедуру выборов и новым Обозревателем станет другой компьютер, благодаря чему все члены рабочей группы, выполняя запросы к Обозревателю, постоянно имеют возможность получения информации о сетевых ресурсах, доступных в данный момент времени. Что касается централизованного управления компьютерами и пользователями, то таких средств для рабочих групп не предусмотрено и, например, если появилась необходимость добавления нового пользователя рабочей группы, то его придется добавить на каждом компьютере, доступ к ресурсам которого предоставлен ему Администратором.

Проблемы с использованием Windows 10/11 в составе рабочих групп



В современных ОС Windows 10/11 концепция рабочих групп претерпела значительные изменения, связанные с усилением безопасности и надежности. Прикладной протокол SMB 1.0/CIFS (SMB/CIFSv1) по умолчанию отключен, Браузер компьютеров отсутствует, доступ к скрытым административным ресурсам не разрешен, многие сетевые утилиты не работают, как не работают и стандартные средства командной строки, имеющие возможность выполнения на других компьютерах локальной сети (shutdown, tasklist и т.п.). В целом, при таких условиях, защищенность системы, в какой-то степени, повысилась, только пользоваться такой системой довольно затруднительно. Поэтому предпримем ряд мер, для того, чтобы использовать компьютеры под управлением Windows 10/11, точно так же, как будто они работают под управлением Windows 7

Включение протокола SMB 1.0/CIFS



Во избежание дополнительных проблем при налаживании работы с рабочими группами Windows, желательно отключить Брандмауэр или включить ”Сетевое обнаружение” и ”Общий доступ к файлам и принтерам”.

Включение протокола SMB 1.0/CIFS обычно выполняются либо с помощью PowerShell, либо с использованием оснастки панели управления Параметры - Приложения – Дополнительные компоненты – Другие компоненты Windows

Включение SMB 1.0/CIFS в Windows 10


Можно просто ввести в командной строке:

OptionalFeatures.exe

Включаются соответственные компоненты SMB 1.0

С помощью PowerShell:

powershell Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol

В конце страницы приведена ссылка на командный файл, в который включены все команды для настройки рабочих групп с Windows 10.

После перезагрузки в системе будет присутствовать компоненты клиента и сервера SMB 1.0 и будет установлена служба Браузер компьютеров (Computer Browser):

Служба Браузер компьютеров (Computer Browser) в Windows 10


Отключение удаленного UAC

Однако, наличие протокола SMB 1.0 еще не предполагает полную работоспособность рабочей группы. Начиная с Windows Vista, в системе реализован механизм контроля учетных записей (UAC), который управляет не только локальным доступом, но и ограничивает права членов группы локальных Администраторов при подключении к удаленным компьютерам (иногда это называют сетевым или удаленным UAC). Пользователь с правами локального Администратора при подключении к удаленному компьютеру прав Администратора по отношении к нему не получает, что не дает доступа к скрытым административным ресурсам (C$, Admin$, IPC$ и т.п.) и не позволяет выполнить большинство задач удаленного управления. При чем, это не касается пользователей домена (Active Directory), поскольку они также являются членами группы "Администраторы" и при подключении для них будет выполняться регистрация с полным маркером доступа Администратора на удаленном компьютере, т.е. UAC не будет действовать. Для рабочих групп же предусмотрено отключение удаленного контроля учетных записей с помощью правки реестра:

Добавляется параметр LocalAccountTokenFilterPolicy типа DWORD, равный единице в раздел реестра HKLM\SOFTWARE\ Microsoft\Windows \CurrentVersion\ Policies\System. Требуется перезагрузка системы, чтобы изменения вступили в силу. После перезагрузки заработает доступ к скрытым административным ресурсам. Но полная работоспособность рабочей группы все равно останется под большим вопросом. Браузер Компьютеров (Computer Browser) Windows 10 с большой долей вероятности окажется неработоспособным, и клиенты не смогут получать список компьютеров рабочей группы.

Проблемы с Браузером компьютеров.



Одним из критериев выбора Браузера компьютеров является версия Windows – чем старше версия, тем выше приоритет компьютера при проведении выборов. Поэтому, в локальной сети, где одновременно присутствуют компьютеры под управлением Windows 7, 8 и 10 /11, роль обозревателя получит компьютер под управлением Windows 10/11. Если в составе рабочей группы уже присутствовал Браузер компьютеров под управлением Windows 7/8, то при подключении к сети компьютера под управлением Windows 10/11, выборы обозревателя выполняться не будут. Таким образом, в рабочей группе с компьютерами под управлением разных версий Windows Браузером могут стать как компьютеры с Windows 10/11, так и компьютеры с Windows предыдущих версий. В первом случае, Браузер Windows 10/11 не будет обслуживать запросы клиентов на получение списка сетевых ресурсов по причинам, о которых речь пойдет ниже, а во втором – рабочая группа будет вполне работоспособна. При перевыборах, которые автоматически выполняются при потере связи с Браузером, например, при перезагрузке или выключении, версия Браузера может измениться и рабочая группа станет неработоспособной или наоборот - работоспособной. Таким образом, работоспособность смешанной рабочей группы может хаотически меняться, в зависимости от того, под управлением какой версии Windows работает Браузер компьютеров. И здесь напрашивается довольно простое решение – запретить компьютерам под управлением Windows 10/11 участвовать в выборах Браузера компьютеров.

Запрет компьютерам участвовать в выборах Обозревателя сети.



Вопрос запрета определенным компьютерам становиться главным или резервным Обозревателем рабочей группы до возникновения проблем с сетевым окружением Windows 10 решался, в основном, для тех случаев, когда им становился компьютер с несколькими сетевыми интерфейсами. В этом случае список компьютеров рабочей группы мог открываться с большой задержкой из-за того, что он создавался для каждого из сетевых интерфейсов, как реальных, так и виртуальных, присутствующих на компьютере. Если Браузером становился такой компьютер, то работа с сетевым окружением становилась некомфортной по причине больших пауз при обращении к ресурсам (выглядело это как частые ”подвисания” при работе с сетью). Чтобы подобного не происходило, такие компьютеры исключали из выборов Браузера правкой реестра. Этот же прием можно использовать для запрета участия в выборах компьютерам под управлением Windows 10/11 :

Не участвовать в выборах Браузера компьютеров


Параметр "MaintainServerList" по умолчанию имеет значение ”Auto” – компьютер может участвовать в выборах Браузера. Значение ”No” – компьютер не будет участвовать в выборах, и ”Yes” – компьютер будет участвовать в выборах. Настройки запрета на участие в выборах должны быть выполнены на всех компьютерах под управлением Windows 10/11.

Для определения компьютера, являющегося Браузером рабочей группы можно воспользоваться командой:

nbtstat –n

Наличие в результатах вывода строки _MSBROWSE_ является признаком того, что данный компьютер является Браузером компьютеров.

Признак того, что компьютер является Браузером компьютеров


Для опроса других компьютеров, можно воспользоваться ключом -a с указанием имени или IP-адреса удаленного узла:

nbtstat –a 192.168.1.36

nbtstat –a win10en

Описанный выше прием с запретом участия в выборах компьютеров под управлением Windows 10/11 не является самым оптимальным, потому, что в сети всегда должен присутствовать хотя бы один компьютер под управлением Windows 7/8, являющийся Браузером, в противном случае, можно вместо списка компьютеров рабочей группы получить сообщение об ошибке, например, при выполнении команды net view :

Системная ошибка 6118.
Недоступен список серверов для этой рабочей группы.


Настройка Браузера компьютеров под управлением Windows 10/11



Проблемы с Браузером компьютеров начались с Windows 10 Creators Update (версия 1703), когда разработчики Microsoft Windows применили разделение групп служб svchost.exe, Это разделение выполняется автоматически для систем с более чем 3,5 ГБ ОЗУ. Для систем 3,5 ГБ или менее, службы продолжают группироваться в общий процесс svchost.exe.

. Другими словами, если на компьютере более 3.5 Гб памяти, то системные службы, объединенные одним процессом svchost автоматически запускаются под управлением отдельного процесса svchost каждая. Более подробно о службах, выполняющихся под управлением svchost.exe и группах можете почитать в статье Процесс svchost.exe и системные службы, связанные с ним.. Разделение служб, ранее работающих под управлением одного и того же хост-процесса, привело к тому, что взаимодействие между ними было нарушено. Отсюда и большинство проблем с сетью на Windows 10. Однако, часть служб, продолжала прекрасно работать, не смотря на вышеперечисленные нововведения, поскольку и для компьютеров с объемом оперативной памяти более 3.5 Гб предусмотрены Исключения:

”Некоторые службы будут по-прежнему группироваться на компьютерах с объемом ОЗУ 3,5 ГБ или более. Например, базовая подсистема фильтрации (BFE) и брандмауэр Windows (Mpssvc) будут сгруппированы в одну группу узлов, как и службы сопоставления конечных точек RPC и удаленных вызовов процедур.”

Для блокировки разделения службы, в ее раздел Parameters добавлен новый ключ SvcHostSplitDisable



Блокировка разделения служб svchost.exe.


Значение по умолчанию 1 предотвращает разделение службы.

Если добавить такой же параметр для службы Lanmanserver, то исчезнут проблемы отображения компьютеров рабочей группы в сети с Windows 10 /11. Службы Lanmanserver и Browser не должны разделяться на всех компьютерах рабочей группы, поскольку любой из них может стать обозревателем сети в результате выборов.

Для получения списка групп svchost.exe с 2-мя и более службами, можно воспользоваться командой:

tasklist /svc | find /i "svchost" | find "," > svchost-groups.txt

В результате, в текстовом файле svchost-groups.txt текущего каталога мы получим список групп, включающих более одной службы ( в выводе команды присутствует строка svchost и символ запятой):

Список групп svchost в  Windows 11.


Конечно, список для каждого конкретного компьютера может несколько отличаться от представленного, но основной набор служб для подобной операционной системы будет именно таким.

Изменение порога для автоматического разделения групп svchost



К счастью, править реестр для десятка - полтора служб совсем не обязательно, поскольку существует возможность отключить автоматическую группировку служб, установив лимит объема памяти не 3.5 Гб, а выше его реального значения для данного компьютера:

Предел объема памяти для автоматической разгруппировки служб svchost.


Параметр SvcHostSplitThresholdInKB раздела реестра HKLM\System\Current ControlSet\Control задает размер объема ОЗУ в килобайтах, до превышения которого службы SvcHost будут объединены в группы. По умолчанию он равен dword:00380000 или 3 670 016 Кб ( те самые 3.5Гб, упоминаемые в документации Microsoft). Если, например, задать значение dword:FF000000, то это будет соответствовать 4278190080 Кб, т.е. группировка служб даже для самого современного компьютера будет выполняться всегда, что избавит его пользователя от множества сетевых проблем.

Действия, необходимые для настройки Windows 10/11 на использование в составе рабочих групп, собраны в специальный командный файл setlan10.bat, представляющий собой сжатый zip-архив, закрытый паролем – ab57.ru. Командный файл нужно скачать, разархивировать и запустить от имени Администратора. В ходе его выполнения будет установлен протокол SMB 1.0/CIFS, отключен сетевой UAC, и выполнены правки реестра, обеспечивающие правильное функционирование сетевых служб без разделения групп svchost.exe.

Командный файл для обеспечения работы Windows 10 в составе рабочей группы


Для вступления изменений в силу нужна перезагрузка. Нормальное функционирование рабочей группы обеспечивается только в том случае, если этот командный файл выполнен на всех компьютерах с операционными системами Windows 10 и Windows 11.

В качестве вывода, можно отметить, что для использования компьютеров под управлением Windows 10/11 в рабочих группах точно так же, как использовались компьютеры под управлением Windows 7/8, минимально необходимо:

  • Установить компоненты SMB 1.0/CIFS

  • Отключить сетевой UAC

  • Запретить разделение групп служб svchost.




Практические примеры командных файлов для выполнения в рабочих группах



Практически все командные файлы должны выполняться с привилегиями Администратора. Полноценная работа в сети возможна только при отключенном контроле учетных записей (UAC)

Удаленное включение электропитания компьютеров рабочей группы.



Для включения электропитания используется технология Wake-On-Lan (WOL), она же – Magic Packet, суть которой заключается в отправке включаемому компьютеру специального кадра Ethernet, получив который, сетевой адаптер выработает сигнал включения электропитания. Подробнее - Технология Wake-On-Lan

Одна из простейших утилит для удаленного включения электропитания - broadc.exe (zip-архив 12кб)

Представляет собой небольшую консольную программу, позволяющую отправлять WOL-пакеты в соответствии с параметрами командной строки. Ее удобно использовать в сценариях администрирования, заданиях планировщика, командных файлах.

Формат командной строки:

broadc.exe < MAC-адрес сетевой карты > < IP-адрес > < номер порта >

В широковещательном сегменте локальной сети, обычно формат командной строки имеет вид:

broadc.exe MAC-адрес сетевой карты 255.255.255.255 67

    IP-адрес и номер порта не имеют никакого отношения к сетевым настройкам включаемого компьютера и предназначены для отправки WOL-кадров в сети, не являющиеся широковещательным сегментом локальной сети.

Примеры использования:

broadc.exe 0002b3d8b4e6 255.255.255.255 67 - включить компьютер, MAC - адрес сетевой карты которого равен 0002b3d8b4e6 .

broadc.exe 0002b3d8b4e6 192.168.65.255 67 - аналогично предыдущему примеру, но используется широковещательный адрес в виде 192.168.65.255.

Такой адрес необходимо использовать в тех случаях, когда компьютер, на котором выполняется программа, имеет более одного сетевого интерфейса и подключен к разным подсетям. Например, имеется два сетевых интерфейса с адресами 192.168.65.0/24 и 192.168.66.0/24/ Если используется широковещательный адрес 255.255.255.255, WOL-пакет будет отправлен на первый сетевой интерфейс, обнаруженный программой, и не являющийся петлевым (127.0.0.1). Соответственно, WOL-пакет будет отправлен через этот интерфейс. Если же дистанционное включение компьютера нужно выполнить в сети, к которой подключен второй интерфейс, то использование адреса 255.255.255.255 делает это невозможным – WOL-пакет будет отправлен в подсеть на первом сетевом интерфейсе. Для решения данной задачи необходимо отправить WOL-пакет на втором сетевом интерфейсе, т.е. задать широковещательный адрес для конкретной подсети, в данном примере - 192.168.65.255. Естественно, при использовании бесклассовой адресации IPv4, широковещательный адрес также нужно вычислить по значению маски. Например, для подсети с маской 255.255.255.192 (64-мя адресами), или для нее же в записи 192.168.65.0/26, широковещательный адрес будет равен 192.168.65.63:

broadc.exe 0002b3d8b4e6 192.168.65.63 67

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

Для получения MAC-адреса сетевой карты используется команда getmac, которая позволяет получить физические адреса сетевых карт не только на локальном компьютере, но и на удаленном:

getmac /s COMP - получить MAC-адреса сетевых адаптеров компьютера COMP

Задача сбора MAC-адресов значительно упрощается, если подготовить текстовый файл со списком компьютеров (например – complist.txt) и обрабатывать его в цикле FOR командного файла:


setlocal EnableDelayedExpansion
REM
set /A N=0
FOR /F "tokens=1" %%k in (complist.txt) do (
GETMAC /S %%k >> getmac.txt
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal

В результате выполнения данного командного файла будет получен файл getmac.txt со списком физических адресов сетевых адаптеров компьютеров, имена или адреса которых содержались в файле complist.txt

Getmac – список MAC-адресов сетевых адаптеров удаленных компьютеров


Колонка ”Физический адрес” содержит MAC-адреса всех адаптеров, существующих на компьютерах списка. Недостатком данного способа сбора адресов является то, что будут получены MAC-адреса адаптеров, не нужных для удаленного включения электропитания - адаптеров беспроводных сетей, виртуальных адаптеров и т.п. Более точные результаты можно получить, если воспользоваться другой командой - arp, позволяющей получить список MAC-адресов, с которыми обменивался данными локальный компьютер. Список хранится в специальном буфере и периодически обновляется. Для того, чтобы буфер адресов был актуальным и включал все MAC-адреса компьютеров рабочей группы, перед командой arp можно выполнить команду:

net view

При выполнении данной команды на компьютере, являющемся Браузером, обновляется и отображается список компьютеров рабочей группы, т.е. в буфере arp будут актуальные MAC-адреса всех нужных компьютеров. Остается лишь сохранить их в текстовом файле:

arp -a > macs.txt - отобразить текущие arp-записи с перенаправлением вывода в файл macs.txt

Содержимое файла включает в себя ARP-записи для всех сетевых интерфейсов:

ARP-кэш Браузера компьютеров.


Из файла придется удалить всю лишнюю информацию, ненужную для включения компьютеров рабочей группы, приведя содержимое к такому виду:

Список MAC-адресов для удаленного включения электропитания.


Файл содержит 2 колонки – IP-адрес компьютера, и его MAC-адрес. IP для включения не нужен, но может пригодиться в качестве дополнительной информации, а у MAC-адресов удален символ -, поскольку для программы broadc.exe он не нужен.

Способ сбора адресов с помощью команды arp имеет тоже небольшой недостаток – MAC-адрес компьютера, на котором выполнялся сбор, не попадет в итоговый текстовый файл. Его придется добавить вручную, используя, например упоминаемую выше команду getmac

Имея текстовый файл со списком MAC-адресов, остается лишь реализовать его циклическую обработку с использованием в качестве MAC-адреса для broadc данных второй колонки:

FOR /F "tokens=2" %%i in (macs.txt) do (
broadc.exe %%i 192.168.239.255 67
)

Данный командный файл будет построчно считывать содержимое файла macs.txt и подставлять содержимое второго элемента строки (tokens=2) в качестве значения переменной i. (значения переменных для циклов FOR в командных файлах записываются с двумя знаками процента - %%i). Таким образом, команда broadc будет выполняться циклически, меняя на каждом шаге значение MAC-адреса. Электропитание компьютеров, MAC-адреса которых имелись в текстовом файле, будет включено.

Для некоторых моделей материнских плат могут потребоваться настройки Wake On LAN в UEFI/BIOS

Удаленное выключение электропитания компьютеров рабочей группы.



Стандартная утилита shutdown.exe позволяет выключать электропитание не только локального компьютера, но и удаленного, IP-адрес или имя которого задается параметром командной строки:

shutdown /s /f /m \\WIN10EN /t 0 - выключить (/s) компьютер WIN10EN, принудительно завершая программы (/f) без ожидания (/t 0).

Таким образом, для выключения электропитания компьютеров рабочей группы можно использовать описанный выше прием с циклическим выполнением FOR по содержимому текстового файла с именами компьютеров. Получить такой файл можно с помощью той же команды net view: net view > complist.txt - отобразить список компьютеров рабочей группы с перенаправлением результатов в текстовый файл complist.txt

Список компьютеров рабочей группы, полученный по команде net view.


Результат выполнения многих командных файлов зависит от прав учетной записи пользователя, в контексте которой он выполняется, поэтому, в командные файлы, требующие права Администратора, желательно добавить соответствующую проверку, и в случае отсутствия необходимых привилегий, завершать работу с отображением предупреждения пользователю. Для отображения сообщений в современных версиях Windows вместо команды net send можно использовать утилиту msg.exe.

Для обработки содержимого файла можно воспользоваться командой find, предназначенной для поиска строковых значений.
Ниже приведено содержимое командного файла для выключения компьютеров рабочей группы с комментариями, поясняющими выполняемые действия:

@echo off
REM проверить наличие прав Администратора с помощью WHOAMI
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
REM Если есть права Администратора – переход на метку admin, иначе – завершение.
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
REM Если есть права Администратора – установить синий цвет фона и белый – цвет символов
:admin
COLOR 1F
setlocal EnableDelayedExpansion
REM Выделяются имена компьютеров в файл complist.txt
REM Убираются символы \\ перед именем компьютера
REM Проверяются пингом доступные компьютеры и их имена заносятся в файл complive.txt
if exist complive.txt erase complive.txt
net view | find "\\" > complist.txt
FOR /F "tokens=1" %%i in (complist.txt) do (
set name=%%i
ping -4 -n 1 !name:~2! | find /I "TTL"
if !ERRORLEVEL! == 0 echo !name:~2! >> complive.txt
)
REM Ведется счетчик выполненных циклов N
set /A N=0
FOR /F "tokens=1" %%k in (complive.txt) do (
set /A N=!N! + 1
REM Задержка перед выключением 10 сек. Иначе компьютер,
REM который выполняет командный файл, может выключиться
REM раньше, чем закончится выполнение.
shutdown -s -f -t 10 -m %%k
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit

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

Запуск приложения на всех компьютерах рабочей группы.



Для удаленного запуска программ можно воспользоваться утилитой PSExec из пакета PSTools от Microsoft Sysinternals.

Как и в предыдущем примере, для работы командного файла требуются права Администратора и строится список компьютеров, на которых должен быть запущен Блокнот Windows (notepad.exe). Для того, чтобы не засорять системные каталоги, файлы, необходимые для работы создаются в каталоге временных файлов, заданном значением переменной TEMP. Для того, чтобы работа командного файла не зависела от его размещения, используется переменная %~DP0 - принимающая значение пути командного файла.

@echo off
REM Проверка наличия прав Администратора
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
:admin
setlocal EnableDelayedExpansion
COLOR 1F
net view > %TEMP%\complist.txt
erase %TEMP%\complive.txt
setlocal EnableDelayedExpansion
FOR /F "eol=К skip=3 tokens=1" %%i in (%TEMP%\complist.txt) do (
set name=%%i
echo !name:~2,16! >> %TEMP%\complive.txt
)
FOR /F "tokens=1" %%k in (complive.txt) do (
%~DP0psexec.exe \\%%k -i -u User -p Password -d notepad.exe
set /A N=!N! + 1
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit

В параметрах командной строки psexec.exe ключ -d используется для того, чтобы утилита завершалась сразу после запуска notepad.exe, не ожидая его завершения. Если имя пользователя (-u) и пароль (-p) не заданы, то используется учетная запись текущего пользователя. Эта же учетная запись с правами Администратора должна присутствовать на всех компьютерах рабочей группы.

Завершение приложения на всех компьютерах рабочей группы.



Также, как и в предыдущем примере проверяется наличие прав Администратора, строится список компьютеров и по списку завершается работа приложения Блокнот (notepad.exe) с помощью стандартной утилиты Windows taskkill.exe. Если завершение приложения выполнилось с ошибкой (код возврата ERRORLEVEL не равен нулю), то пользователю выдается сообщение об ошибке.

@echo off
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
:admin
COLOR 1F
setlocal EnableDelayedExpansion
rem Создается список компьютеров в файле complive.txt
rem Убираются символы \\ перед именем компьютера
net view | find "\\" > %~DP0complist.txt
if exist complist.txt erase %~DP0complive.txt
FOR /F "tokens=1" %%i in (%~DP0complist.txt) do (
set name=%%i
ping -4 -n 1 !name:~2! | find /I "TTL"
if !ERRORLEVEL! == 0 echo !name:~2! >> %~DP0complive.txt
)
set /A N=0
FOR /F "tokens=1" %%k in (%~DP0complive.txt) do (
taskkill.exe /S \\%%k /IM notepad.exe
if not ERRORLEVEL ==0 msg console Computer %%K - error = %ERRORLEVEL%
set /A N=!N! + 1
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit


Копирование файлов на все компьютеры рабочей группы.



В данном примере копируется содержимое каталога, имя которого задано переменной FOLDER (принимает значение 0), а путь – переменной FROM (%~DP0 - диск и путь командного файла). Логический диск удаленного компьютера задается значением переменной TO. Диск подключается под буквой T: командой net use с использованием скрытого административного ресурса выбранного логического диска (C$, D$ и т.п.). Копирование выполняется командой xcopy с подкаталогами, если они есть в копируемом каталоге и подавлением запросов на перезапись существующих файлов. Переменная delay определяет задержку отключения сетевого диска для завершения операции копирования. В командном файле используется команда title, позволяющая отобразить имя компьютера, на который выполняется копирование в заголовке окна. Подобный прием удобно использовать в тех случаях, когда копирование выполняется длительное время. В любой момент времени известно, с каким компьютером рабочей группы работает командный файл.

@echo off
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
:admin
setlocal EnableDelayedExpansion
COLOR 1F
rem Список ”живых” компьютеров создается в файле complive.txt
rem Убираются символы \\ перед именем компьютера
if exist %~DP0complive.txt erase %~DP0complive.txt
net view | find "\\" > %~DP0complist.txt
FOR /F "tokens=1" %%i in (%~DP0complist.txt) do (
set name=%%i
ping -4 -n 1 !name:~2! | find /I "TTL"
if !ERRORLEVEL! == 0 echo !name:~2! >> %~DP0complive.txt
)
REM Задаются значения переменных для подключения и копирования
set TO=D
set FOLDER=0
set FROM=%~DP0%FOLDER%
set delay=3
set /A N=0
FOR /F "tokens=1" %%k in (%~DP0complive.txt) do (
title %%k
net use T: \\%%k\!TO!$
xcopy /E /Y !FROM!\*.* T:!FOLDER!\*.*
net use T: /DELETE
ping -n !delay! localhost
set /A N=!N! + 1
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit


Установка приложения на всех компьютерах рабочей группы.



Для установки приложения Blender используется ранее скопированный по сети файл инсталлятора, находившийся в каталоге 0 ( в предыдущем примере это файл, скопированный на удаленный компьютер как "D:\0\blender-3.4.1-windows-x64.msi") и стандартный установщик Windows msiexec.exe, выполняющий установку приложения в ”тихом режиме” без каких либо запросов пользователю.

@echo off
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
:admin
setlocal EnableDelayedExpansion
COLOR 1F
rem Строится список доступных компьютеров в файле complive.txt
rem Убираются символы \\ перед именем компьютера
if exist %~DP0complive.txt erase %~DP0complive.txt
net view | find "\\" > %~DP0complist.txt
FOR /F "tokens=1" %%i in (%~DP0complist.txt) do (
set name=%%i
ping -4 -n 1 !name:~2! | find /I "TTL"
if !ERRORLEVEL! == 0 echo !name:~2! >> %~DP0complive.txt
)
REM Ведется счетчик выполненных установок N
set /A N=0
FOR /F "tokens=1" %%k in (complive.txt) do (
%~DP0psexec.exe \\%%k -i -u User -p 1 -d C:\windows\system32\msiexec /quiet /i "D:\0\blender-3.4.1-windows-x64.msi"
set /A N=!N! + 1
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit


Копирование каталогов на удаленных компьютерах.



Копирование выполняется на компьютерах рабочей группы командой xcopy, запускаемой удаленно с помощью утилиты PSExec. Параметр командной строки -i задает интерактивный режим утилиты PSExec, делая процесс копирования видимым для текущего пользователя удаленного компьютера. В примере копируется содержимое каталога sqldeveloper\ удаленного компьютера с диска C: на диск D:

WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
:admin
COLOR 1F
setlocal EnableDelayedExpansion
rem Убираются символы \\ перед именем компьютера
net view | find "\\" > complist.txt
if exist complist.txt erase complive.txt
FOR /F "tokens=1" %%i in (complist.txt) do (
set name=%%i
ping -4 -n 1 !name:~2! | find /I "TTL"
if !ERRORLEVEL! == 0 echo !name:~2! >> complive.txt
)
set /A N=0
FOR /F "tokens=1" %%k in (complive.txt) do (
%~dp0psexec.exe \\%%k -i -u user -p Password -d xcopy.exe /Y /E C:\sqldeveloper\ D:\sqldeveloper\
if not ERRORLEVEL ==0 msg console Computer %%K - error = %ERRORLEVEL%
set /A N=!N! + 1
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit

Запуск редактора групповых политик на компьютерах рабочей группы



Для запуска используется командный процессор, запускаемый утилитой PSExec с ключом -s - под локальной системной учетной записью (СИСТЕМА). Этот прием можно использовать в тех случаях, когда прав Администратора недостаточно.

WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User - %USERNAME%
exit
:admin
COLOR 1F
setlocal EnableDelayedExpansion
REM Переход на логический диск с которого запущен командный файл
%~D0
REM Переход в каталог, из которого запущен командный файл
cd %~DP0
REM Построение списка компьютеров рабочей группы
rem Убираются символы \\ перед именем компьютера
net view | find "\\" > %~DP0complist.txt
if exist %~DP0complist.txt erase %~DP0complive.txt
FOR /F "tokens=1" %%i in (%~DP0complist.txt) do (
set name=%%i
ping -4 -n 1 !name:~2! | find /I "TTL"
if !ERRORLEVEL! == 0 echo !name:~2! >> %~DP0complive.txt
)
REM
set /A N=0
FOR /F "tokens=1" %%k in (%~DP0complive.txt) do (
%~DP0psexec.exe \\%%k -i -s -d -w "C:\Windows\System32" C:\Windows\System32\cmd.exe /c gpedit.msc
set /A N=!N! + 1
)
msg console Сценарий выполнен для общего числа компьютеров - %N%
endlocal
exit


setlan10.bat - архив с командным файлом для настройки Windows 10/11 на использование в рабочих группах, закрытый паролем – ab57.ru. Командный файл нужно скачать, разархивировать и запустить от имени Администратора. В ходе его выполнения будет установлен протокол SMB 1.0/CIFS, отключен сетевой UAC, и выполнены правки реестра, обеспечивающие правильное функционирование сетевых служб без разделения групп svchost.exe.

Дополнительные материалы по командной строке Windows:

Раздел со списком команд CMD Windows. Имена большинства команд представляют собой ссылку на страницы с их описанием и примерами.

Командная строка CMD Windows. Знакомство с командной строкой Windows.

Работа с сетью в командной строке Windows - Описание и примеры использования утилит командной строки для работы с сетью.

Системные службы под управлением хост-процесса svchost.





В начало страницы     |     На главную страницу сайта



Рейтинг@Mail.ru