вторник, 14 октября 2014 г.

Как на удалённом ПК установить службу Сервер, File and Printer Sharing for Microsoft Networks

Недавно столкнулся с интересной задачей в проекте по ConfigMgr.

Необходимо было развернуть агентов ConfigMgr на большое кол-во рабочих станций с Windows XP, однако выяснилось, что служба "Сервер", которая отвечает за коммуникации по 135-139 и 445 портам отсутствует в системах. ПК было около 2000 тысяч. Необходимо было централизовано, без походов по ПК, установить и зарегистрировать службу.

ПРИМЕЧАНИЕ! Способ тестировался для русифицированной Windows XP SP3, для поздних операционных систем не проверял.

Пришлось пару дней крепко подумать, в итоге проблему решил с помощью утилиты NetSet из набора Support.CAB, который находится на дистрибутиве Windows XP | Server 2003 (если мне память не изменяет, ещё и в Windows 2000 применялось при OSD для конфигурирование сетевых интерфейсов с правильными параметрами).

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

ВНИМАНИЕ! При работе с файлом ответов надо помнить, что если компонент в нём не перечислен, но обнаружится в системе, NetSet произведёт его удаление.

Пример файла ответов


[Networking]

[NetAdapters]
Adapter01=Params.Adapter01 //имя сетевого адаптера

[Params.Adapter01]
InfID=* //адаптер может иметь любой GUID

[NetProtocols]
MS_TCPIP=Params.MS_TCPIP

[Params.MS_TCPIP]
AdapterSections=params.TCPIP.Adapter01
DNS=yes
DNSSuffixSearchOrder= mycorp.com, <name>.com
EnableLMHosts=No

[params.TCPIP.Adapter01]
SpecificTo=adapter01
DNSDomain=mycorp.com
DHCP=Yes

[NetServices]
MS_Server=params.MS_Server
   //собственно кусок, который нам нужен

 
 
 
 
[Params.MS_Server]
optimization=balance
Enable="MS_Server"

[NetClients]
MS_MSClient=Params.MS_MSClient

[Params.MS_MSClient]

Струтура файла ответов достаточно проста:

[Имя  компонента]
Имя компонента = СегменПараметров.компонента

[СегментПараметров.Компонента]
Параметр1 =
Параметр2 =

Далее был написан простенький *.cmd файл, который был распространён GPO (Computer Settings) на все необходимые ПК. Файлик состоял из двух строк:

  • копирование необходимых файлов
 
  • Запуска команды NetSet с файлом ответов.

start "NetSet" /D C:\ Netset "c:\AnswerFile.txt"

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

В Windows XP существует единственный стандартизованный интерфейс с одинаковым названием - это LoopBack iface. Точное название можно посмотреть через netsh:

netsh > interface > ipv4 > show interface

И если указать его в файле ответов, к примеру для русcифицированной Windows XP

Внутренний=Params.Внутренний
Мы получаем искомое.

Собственно, вот и весь рецепт.

Спасибо и буду рад вопросам или другому участию.


http://support.microsoft.com/kb/268781/en-us

Комментариев нет:

Отправить комментарий

Уважаемый коллега, Ваш комментарий пройдёт модерацию, чтобы избежать спам-атак в ленте. Спасибо за понимание.