Настройка аппаратной инвентаризации для сбора данных из реестра

Configuration Manager 2007 собирает данные о аппаратном обеспечении на основе конфигурации, которая находится в директории <ConfigMgr install directory>\inboxes\clifiles.src\hinv. Настройки хранятся в двух файлах configuration.mof и sms_def.mof.

Configuration.mof
Используется для создания классов данных, которые собираются в процессе аппаратной инвентаризации. В качестве данных для классов могут выступать данные, находящиеся в репозитории WMI или ключах реестра.

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

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

Создадим в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ ключ TestMSKey. И в данном ключе создадим 3 строковых значения Value1,Value2,Value3 со сзначениями соответственно test1,test2,test3.

Далее вносим соответствующие добавления в файл configuration.mof

#pragma namespace(“\\\\.\\root\\CIMV2“)
#pragma deleteclass(“RegMSKey“, NOFAIL)
[ dynamic, provider(“RegProv”),ClassContext(“local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\TestMSKey“)]

class RegMSKey
{
[Key] string MyKeyName;
[PropertyContext(“Value1“)] string Vl1;
[PropertyContext(“Value2“)] string Vl2;
[PropertyContext(“Value3“)] string Vl3;
};

Примечание: изменять нужно только что, что выделено жирным. После редактирования и сохранения файла configuration.mof можно убедиться что Configuration Manager правильно воспринял конфигурацию. Для этого необходимо перейти в папку <ConfigMgr install directory>\data\hinvarchive и убедиться что отсуствует только что созданный файл configuration.mof.bad.bak и открыть файл configuration.mof и убедиться что их него не исчезли только что введеные строки конфигурации. Для отсутствия проблем при копировании вышеприведенного примера, его лучше ввести вручную. При копировании из статьи добавляются невидимые спец-символы, которые препятствуют нормальному восприятию конфигурации.

Далее вносим изменения в файл Sms_def.mof

#pragma namespace (“\\\\.\\root\\cimv2\\sms“)

#pragma deleteclass(“RegMSKey“,NOFAIL)
[ SMS_Report (TRUE),
SMS_Group_Name (“Test Inventory“),
SMS_Class_ID (“MICROSOFT|TestInventory|1.0“) ]

class RegMSKey : SMS_Class_Template
{
[SMS_Report (TRUE), Key ] string MyKeyName;
[SMS_Report (TRUE)] string Vl1;
[SMS_Report (TRUE)] string Vl2;
[SMS_Report (TRUE)] string Vl3;
};

Убеждаемся, что конфигурация воспринята как описано выше и ждем инвентаризации….

После цикла инвентаризации запускаем Resourse Explorer и смотрим результат:

По желанию можно создать отчеты и включить собранные данные в какой-либо отчет.

Дополнительную информацию можно найти здесь

Создание автоматических инсталляций

Для развертывания приложений средствами SCCM необходимо иметь возможность устанавливать приложения автоматически. К сожалению не всегда это возможно, но даже там где это возможно не всегда удается найти необходимые ключи инсталляции. На просторах интернета был обнаружена страничка – http://unattended.sourceforge.net/installers.php, где собрана информация о ключах многих инсталяторов. Хотелось бы заметить что в конкректном случае он мне не помог, но информация на мой взгляд достаточно полезна.

Создание коллекций SCCM 2007 при помощи скрипта на powershell

Как известно для установки программ нужна коллекция, на которую advetersement и будет назначен. Причем жедательно эту коллекцию создавать, чтоб в нее попали только те компьютеры, на которых программа не установлена. Собственно мне надоело каждый раз делать одно и тоже, в результате чего родился скрипт. Скрипту в качестве параметров передается название программы, строка для отбора и если необходимо родительская коллекция, в которой необходимо создвать коллекцию. В результате создаются 2 коллекции – одна будет содержать компьютреы, на которых требуемая программа установлена, вторая на которых не установлена. Коллекции будут обновляться раз в сутки и автоматически создается Query based правило для автоматического заполнения коллекции.

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

$Site = “site name”
$sccmServer = “sccmserver name”

function Create-SCCMCollection($parentCollectionName, $collectionName)
{
$ColClass = [WMIClass]”\\$sccmServer\Root\SMS\Site_$($Site):SMS_Collection”
$shClass = [WMIClass]”\\$sccmServer\Root\SMS\Site_$($Site):SMS_ST_RecurInterval”
$Col = $ColClass.PSBase.CreateInstance()
$Col.Name = $collectionName
$Col.OwnedByThisSite = $True
$Col.Comment = “Collection $collectionName”
$col.RefreshType = 2
$sh = $shClass.PSBase.CreateInstance();
$sh.dayspan = 1
$col.RefreshSchedule = $sh
$Col.psbase
$Col.psbase.Put()
$parentColID = (get-wmiobject -class “SMS_Collection” -namespace “root\sms\site_$($Site)” -computername “solsms” -filter “Name = ‘$parentCollectionName'”).collectionID
$NewCollectionID = (Get-WmiObject -computerName $sccmServer -namespace Root\SMS\Site_$Site -class SMS_Collection | where {$_.Name -eq $collectionName}).CollectionID $RelClass = [WMIClass]”\\$sccmServer\Root\SMS\Site_$($Site):SMS_CollectToSubCollect”
$Rel = $RelClass.PSBase.CreateInstance()
$Rel.ParentCollectionID = $parentColID
$Rel.SubCollectionID = $NewCollectionID
$Rel.psbase
$Rel.psbase.Put()

}

function AddQueryToCollection($collectionName, $query)
{
$host.UI.RawUI.ForegroundColor = “White”
$Method = “AddMembershipRule”
$colClass = get-wmiobject -class “SMS_Collection” -namespace “root\sms\site_$($Site)” -computername $sccmServer -filter “Name = ‘$collectionName'”
$objColRuleDirect = [WmiClass]”\\$sccmServer\root\sms\site_A01:SMS_CollectionRuleQuery”
$objColRuleDirect.psbase.Properties[“LimitToCollectionID”].value = “”
$objColRuleDirect.psbase.Properties[“QueryExpression”].value = $query
$objColRuleDirect.psbase.Properties[“RuleName”].value = “Auto Query Rule” $InParams = $colClass.psbase.GetMethodParameters($Method)
$InParams.collectionRule = $objColRuleDirect
$param = $objColRuleDirect.psbase.getMethodParameters(“ValidateQuery”)
$param.wqlquery = $query
$R = $objColRuleDirect.psbase.invokeMethod(“ValidateQuery”,$param,$null)
if ($R.ReturnValue -eq $True) {
$R = $colClass.psbase.InvokeMethod($Method, $inParams, $Null)
if ($R.ReturnValue -eq 0) {
write-Host “Query sucssesful added” $curObj.ResourceID
}
}
else {
$host.UI.RawUI.ForegroundColor = “Red”
write-Host “Error in query ” $query
$host.UI.RawUI.ForegroundColor = “White”
}
}
If ($args.length -eq 0) {
write-host “Please use command Softname SoftQuery Parent Collection Name”
exit
} $softname = $args[0]
$softquery = $args[1]
$parentcollection = $args[2]
If ($parentcollection.length -eq $null) {
write-host “Use default collections”
Create-SCCMCollection “Corporate Software Collections” $softname” Installed”
Create-SCCMCollection “Corporate Software Installation” $softname” Not Installed”
}
else{
write-host “Use custom collections”
Create-SCCMCollection $parentcollection $softname” Installed”
Create-SCCMCollection $parentcollection $softname” Not Installed”
}

$soft = $softquery
$selectFull = “SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client”
$selectShort = “SMS_R_System.ResourceID”
$queryPresentSoft = “select ” + $selectFull + ” from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like ‘” + $soft + “‘ and Active = 1 and Obsolete = 0”;
$querycontain = “select ” + $selectShort + ” from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like ‘” + $soft + “‘ and Active = 1 and Obsolete = 0”;
$queryNotPresentSoft = “select ” + $selectFull+” from SMS_R_System where ResourceId not in (“+$querycontain+”) and Active = 1 and Obsolete = 0″

AddQueryToCollection $softname” Installed” $queryPresentSoft
AddQueryToCollection $softname” Not Installed” $queryNotPresentSoft
$host.UI.RawUI.ForegroundColor = “Green”

Автоматическая инсталляция Windows 7

Автоматическая установка Windows 7
В корпоративной среде (да и дома зачастую) необходимо иметь образ с предустановленым набором программ. Это дает возможность свести к минимуму время для донастройки пользовательского компьютера после установки операционной системы. (При использовании System Center Configuration Manger это время можно свести практически к нулю). Но пока SCCM трогать не буду, а в данной статье будет описано процесс подготовки образа и файла ответов для автоматической установки Windows 7 с использованием Windows Deployment Sevices.
Для осуществеления задуманного понадобится:
1. Windows Deployment Server (WDS)
2. Windows Automation Installation Kit for Windows 7 (WAIK for Windows 7)
3. Установочный диск с требуемой редакцией Windows 7.
Приготовления:
1. В качестве boot образа в WDS импортируем файл boot.wim из каталога sourses, находящегося на диске с операционной системой.
2. Устанавливаем WAIK
3. Создаем собсвенный загрузочный диск, на который не забываем скопировать утилиту imagex (http://www.maxx.net.ua/?p=9)
4. Устанавливаем Windows 7 на тестовый компьютер и затем все необходимые программы.
5. Готовим файл ответов.
6. Запускаем sysprep и затем создаем образ диска с операционной системой.
Пункты с 1-4 не содержат чего-либо сложного, а описание что делать в пункте 3 можно найти по ссылке. Остановимся на пунктах 5 и 6.
Подготовка файлов ответов
Файл ответов (unattend.xml) это обычный xml файл, который можно написаь и вручную, однако гораздо удобней эо делать при помощи специальной утилиты. Для создания файла ответов предназначена утилита Windows System Image Manager (WindowsSIM).
После запуска открываем файл инсталляции (File -> SelectWindowsImage) и указываем в качестве образа операционной системы файл install.wim с диска с операционной системой.
В разделе Answer File находятся разделы файла ответов. Для его составления необходимо в окне Windows Image выбрать нужный компонент и перенести его в требуемый раздел файла ответов. После чего заполнить в окне Properties необходимые параметры. Все параметры, которые не будут заполнены в файл ответов не попадут.
Далее приведены параметры, которые необходимо вписать в файл ответов:
Раздел oobeSystem Компонент Microsoft-Windows-Shell-Setup
<OOBE>
<HideEULAPage>true</HideEULAPage>
показывать или не показывать лицензионное соглашение
<NetworkLocation>Work</NetworkLocation>
параметры сетевого подключения
<ProtectYourPC>1</ProtectYourPC>
использовать рекомендуемые параметры автоматического обновления
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
не предлагать пользователю подключаться к безпроводной сети после установки
<SkipMachineOOBE>true</SkipMachineOOBE>
как говорит документация, эта опция не используется. Однако если ее не использовать, то появляется окно с предложением ввести имя компьютера, несмотря на то, что он уже введен в домен и имеет имя. После ввода имени компьютер переименовывается, но в домене остается под старым именем
<RegisteredOrganization>My Organization</RegisteredOrganization>
название организации
<RegisteredOwner>Org User</RegisteredOwner>
Имя пользователя
Далее следует набор опций, которые добавляют доменных администраторов в группу локальных администраторов. Если этого не сделать, то появится окно с предложением создать пользователя после установки.
<DomainAccounts>
<DomainAccountList wcm:action=”add”>
<DomainAccount wcm:action=”add”>
<Group>Administrators</Group> локальная группа
<Name>Domain Admins</Name> доменная группа, которую добавляем в локальную группу
</DomainAccount>
<Domain>OrgDomain</Domain> в каком домене группу искать
</DomainAccountList>
</DomainAccounts>
<LogonCommands>
<AsynchronousCommand wcm:action=”add”>
<CommandLine>cmd /c net user user /delete</CommandLine>
<Description>delete temp user</Description>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</AsynchronousCommand>
</LogonCommands>
в моем образе существует пользователь, который абсолютно не нужен при работе, вот его здесь и удалим. Также тут можно добавить любые команды, которые нужно выполнить при первом входе в систему
<TimeZone>FLE Standard Time</TimeZone>
временная зона
Раздел oobeSystem Компонент Microsoft-Windows-International-Core
<SystemLocale>ru-ru</SystemLocale>
язык для программ, не поддерживающих Unicode.
<UserLocale>uk-ua</UserLocale>
указываем региональные настройки пользователя(формат вемени, даты и т.д.)
<InputLocale>en-us</InputLocale>
раскладка клавиатуры
<UILanguage>uk-ua</UILanguage>
язык интерфейса
<UILanguageFallback>uk-ua</UILanguageFallback>
какой язык отображать, если язык интерфейса не содержит надписей на нужном языке
Раздел specialize Компонент Microsoft-Windows-UnattendedJoin
<Credentials>
домен, имя и пароль пользователя, который будет использован для ввода компьютера в домен
<Domain>OrgDomain</Domain>
<Password>pass</Password>
<Username>user</Username>
</Credentials>
<JoinDomain> OrgDomain </JoinDomain>
домен, в который нужно ввести компьютер.
<MachineObjectOU>OU=Deployed,OU=Computers,DC=OrgDomain </MachineObjectOU>
В какой контейнер AD расположить учетную запись компьютера.
После создания файла ответов, его можно скопировать на тестовую машину например в директорию %WINDIR%\system32\sysprep и запустить команду sysprep /generalize /oobe /shutdown /unattend:unattendfilename.xml.
После выключения компьтера загружаемся с образа, созданного в пункте 3 и командой imagex /capture c: f:\sevenimage.wim “Windows 7 image” создаем образ. В дальнейшем этот образ можно распространять при помощи WDS сервера, либо на DVD диске, если его размер позволит это сделать.
Пример рабочего файла ответов можно скачать здесь
Видео как создать файл ответов можно увидеть здесь – скачать (12 Мб) либо посмотреть в онлайне

Поиск драйверов в каталоге обновлений Windows

Как-то раньше я обходился драйверами, скачанными с сайта производителя либо компьютера, либо самого железа. Но вот при собирании образов для Windows 7 нужны нормальные драйвера, а не инсталяторы, которые обычно предлагают скачать производители. И тут в поисках очередного драйвера я наткнулся на каталог обновлений от Microsoft, расположеный по адресу – http://catalog.update.microsoft.com/v7/site/home.aspx. Оказалось что в качестве критерия для поиска можно вбить даже DEV_XXXX – строку, которую можно увидеть в диспетчере устройств. И если такой драйвер есть, он будет показан. Дальше все просто – скачиваем архив и получаем именно драйвера с inf файлами, а не инсталятор.

Создание собственного загрузочного диска на базе Windows PE

С выходом Windows 7 вышел и новый WAIK. В целом работа с ним особо не отличается от работы с WAIK для Windows Vista, однако в нем наконец-то появилась поддержка русского языка. А это означает что можно беспроблемно его использовать для например сохранения данных с нерабочено ноутбука/компьютера.
Получить его можно здесь – http://www.microsoft.com/downloads/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=en. Хотелось бы отметить, что в отличие от предыдущей версии для скачивания данного WAIK не нужно проходить проверку подлинности Windows. Странно, но это так. Скачиваем, пишем на болванку, устанавливаем. И затем запускаем Deployment Tools Command Prompt (запустить необходимо с правами администратора).
А дальше все очень просто:
d:\Data\OsDeployImages\boot\work\image – директория для работы,правится по надобности.
copype.cmd x86 d:\Data\OsDeployImages\boot\work\image\
Директория image не должна существовать и будет создана.
В отличие от предыдущего WAIK тут практически все делается одной командой – dism
Монтируем образ:
dism /mount-wim /wimfile:d:\data\osdeployimages\boot\work\image\boot.wim /index:1 /mountdir:d:\Data\OsDeployImages\boot\work\image\mount

Добавляем поддержку русского языка:

dism /image:d:\Data\OsDeployImages\boot\work\image\mount /add-package /packagepath:e:\WinPE_LangPacks\x86\ru-ru\lp.cab

Диск E это DVD с WAIK.
Устанавливаем русский язык языком по умолчанию:

dism /image:d:\Data\OsDeployImages\boot\ork\image\mount\ /set-allintl:ru-ru

Учитывая что я обычно гружусь по сети, то необходимо интегрировать в образ все необходимые драйвера сетевых карт для поддержки любого имеющегося у меня оборудования. Сложил я все драйвера в директорию D:\Data\OsDeployImages\boot\drivers, где для каждой железяки создана отдельная директория с драйверами для нее. И тут меня ждал сюрприз – теперь inf файл нужно указывать конкретно, указание путь\*.inf как было раньше уже не работает. Ручками перепысывать было лень и появился такой маленький скрипт для powershell:

Get-ChildItem D:\Data\OsDeployImages\boot\drivers -recurse | where {$_.extension -eq “.inf” } | select fullname | foreach-object { echo “Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:”$_.fullname} | out-file d:\list.txt -encoding ascii

После его работы получаем список вида:

Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1000325.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\E1E5132.INF
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\E1e6032.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1g6032.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1q5132.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1q6032.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\PRO1000\DOS\oemsetup.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\PRO1000\Win32\e1000325.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\PRO1000\Win32\E1E5132.INF

который просто исполняем.

Далее добавляем нужные программы:

Создаем директорию d:\Data\OsDeployImages\boot\work\image\mount\Tools и в нее добавляем все, что нам нужно. Для снятия образов нужно не забыть скопировать на него утилиту imagex.
Если необходимо запускать какую-то программу после загрузки, то добавляем ее в файлик d:\Data\OsDeployImages\boot\work\image\mount\Windows\System32\Startnet.cmd Вообще-то для этого существует файл Winpeshl.ini, но вот я после загрузки запускаю Far Manager. Если его запуск прописать в Winpeshl.ini то startnet.cmd почему-то не отрабатывает. Почему не знаю, у меня работало именно таким образом.
После чего командой
dism /unmount-Wim /MountDir:d:\Data\OsDeployImages\boot\work\image\mount /Commit
отмонтируем образ boot.wim и на этом этап создания образа окончен. Добавляем его например как boot image в WDS сервер и получаем возможность загрузить по сети любой компьютер.
Если нужна загрузка с DVD, то все достаточно просто:

Монтируем образ:

dism /mount-wim /wimfile:d:\Data\OsDeployImages\boot\work\image\boot.wim /index:1 /mountdir:d:\Data\OsDeployImages\boot\work\image\mount

и создаем загрузочное меню:

Bcdedit /createstore d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -create {bootmgr} /d “Boot Manager”
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {bootmgr} device boot
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -create /d “WINPE” -application osloader
После данной команды будет выдан ID, который необходимо запомнить. {668f076f-a44f-11de-aab5-002264ad89b9}
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} osdevice boot
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} device boot
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} path \windows\system32\winload.exe
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} systemroot \windows
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} winpe yes
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -displayorder {668f076f-a44f-11de-aab5-002264ad89b9} -addlast
oscdimg -n -m -o -bd:\Data\OsDeployImages\boot\work\image\etfsboot.com d:\Data\OsDeployImages\boot\work\image\mount d:\Data\OsDeployImages\boot\winpe_x86.iso

Все, загрузочный iso образ готов. Если boot.wim не нужен, то его можно отмонтировать.

Пара команд, которые я постоянно забываю

Настройка сети:

netsh int ip set addr “local area connection” source=”dhcp”
netsh int ip set addr “local area connection” static 192.168.0.2 255.255.255.0 192.168.0.1 1
netsh int ip set addr “local area connection” static 192.168.0.1 primary

Изменение MTU Vista/7

netsh interface ipv4 show subinterfaces
netsh interface ipv4 set subinterface “1” mtu=1500 store=persistent

Создание IPSEC туннеля Windows < - > Cisco

Нам необходимо соединить 2 подсети 172.10.0.0/24 и 172.30.0.0/24. Сеть 172.10.0.0/24 имеет шлюз по умолчанию 172.10.0.1, который является IP адресом на одном из сетевых интерфейсов W2k3 сервера. Сеть 172.30.0.0/24 имеет шлюз по умолчанию 172.30.0.1, который является IP адресом на интерфейсе vlan900. W2k3 сервер имеет внешний интерфейс 10.1.127.13, маршрутизатор Cisco имеет внешний интерфейс 10.1.127.14.

Конфигурация Cisco

encr 3des
hash md5
authentication pre-share
group 2
!
1234567890 является ключом шифрования
crypto isakmp key 1234567890 address 10.1.127.13
!
crypto ipsec transform-set MAXX_Center esp-3des esp-md5-hmac
!
crypto map MAXX_Center 10 ipsec-isakmp
set peer 10.1.127.13
set transform-set MAXX_Center
match address 110
!
interface FastEthernet4
description == dc7100 ==
switchport access vlan 900
spanning-tree portfast
IP адрес на интерфейсе vlan6 получается динамически, однако на время теста он оставался неизменным – 10.1.127.14
interface Vlan6
ip address dhcp
crypto map MAXX_Center
!
interface Vlan900
ip address 172.30.0.1 255.255.255.0
!
ip route 172.10.0.0 255.255.255.0 10.1.127.13
!
access-list 110 permit ip 172.30.0.0 0.0.0.255 172.10.0.0 0.0.0.255

Конфигурация Windows 2003 server

После конфигурирования cisco лазить по окошкам, да еще и инструкцию писать при помощи Print-screen как-то не особо удобно. Поэтому вспоминаем наличие утилиты netsh и стараемся забыть о наличии графического интерфейса. Скрипт настройки W2k3 выглядит следующим образом:
netsh ipsec static set store location=local
netsh ipsec static add policy “Windows – Cisco” mmpfs=no mmlifetime=60 assign=yes mmsecmethods=”3DES-MD5-2″
netsh ipsec static add filter filterlist=”Windows-Cisco” srcaddr=172.10.0.0 dstaddr=172.30.0.0 protocol=any mirrored=no srcmask=24 dstmask=24
netsh ipsec static add filter filterlist=”Cisco-Windows” srcaddr=172.30.0.0 dstaddr=172.10.0.0 protocol=any mirrored=no srcmask=24 dstmask=24
netsh ipsec static add filteraction name=”WCAction” qmpfs=no action=negotiate qmsecmethods=ESP[3DES,MD5]
netsh ipsec static add rule name=”Windows->Cisco tunnel” policy=”Windows – Cisco” filterlist=Windows-Cisco filteraction=WCAction tunnel=10.1.127.14 conntype=lan kerberos=no psk=”1234567890″
netsh ipsec static add rule name=”Cisco->Windows tunnel” policy=”Windows – Cisco” filterlist=Cisco-Windows filteraction=WCAction tunnel=10.1.127.13 conntype=lan kerberos=no psk=”1234567890″
netsh ipsec static set policy name=”Windows – Cisco” assign=yes

На этом конфигурирование окончено. Туннель должен подняться (по крайней мере так это было у меня)

Установка Windows XP c использованием SCCM и PXE

Удаленная установка Windows XP при помощи System Center Configuration Manager с использованием технологии PXE

System Center Configuration Manager является набором средств управления промышленного уровня, предоставляющий администраторам все доступные возможности контроля развертывания. Полная интеграция со средствами распространения ПО, управления исправлениями, драйверами, миграцией пользовательской среды, а также набор средств автоматизированной установки Windows и методология BDD обеспечивают поддержку всего жизненного цикла проекта развертывания любого размера. Интеграция со службой развертывания Windows позволяет осуществлять автоматическое развертывание с помощью технологии PXE.

Стандартными задачами, которые предлагает SCCM 2007 по умолчанию, являются создание образа установленной операционной системы и его последующее разворачивание. Вручную можно создавать любые задачи, которые например просто отформатируют все жесткие диски в организации. В данном руководстве рассматривается задача установки Windows XP и затем создание образа для дальнейшего развертывания. Некоторые скрин-шоты исключены для уменьшения места, но думаю ввести необходимые данные не составит труда.

Описание тестовой среды

Для развертыывания необходимо:

– Windows 2003 SP2 server с развернутыми службами Active directory;
– DHCP сервер;
– System Center Configuration Manager 2007;
– рабочая станция, поддерживающая загрузку по технологии PXE;
– немаршрутизируемая сеть;
– установочный диск Windows XP.

Имя домен контроллера, который будет также являться DHCP сервером и на нем же был развернут SCCM 2007 (Site code M01, maxx site) – serv1. Других серверов в тестовой среде нет. Также, отмечу, что в данном руководстве не затрагиваются вопросы безопасности. В тех случаях, когда где необходимы какие-либо учетные записи используется учетная запись доменного администратора.

Кроме SCCM 2007 нам понадобится служба WDS. WDS является опциональным компонентом Windows 2003 SP2. Для его установки идем в Control panel-> Add or Remove programs-> Add/Remove windows components (Или же в Server Manger в случае использования Windows Server 2008)

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

Следует отметить, что в случае расположения DHCP и WDS серверов на одном сервере, WDS службу таки нужно будет настраивать. Настройка сводится к запрету слушать 67 порт.

Следующим этапом будет конфигурирование DHCP сервера. Будем считать, что он настроен, авторизирован и успешно выполняет свои функции, но для использования его для загрузки PXE клиентов необходимо добавить опцию 060. Запускаем оснастку DHCP и добавляем опцию 060 со значением PXEClient в требуемой подсети.

Если сейчас попробовать попытаться загрузиться по сети на рабочей станции, мы увидим следующую картинку. Это будет означать что клиент успешно получил все параметры от DHCP сервера, но так и не дождался ответа от PXE сервера.

Далее приступаем к конфигурированию самого SCCM 2007

Необходимо настроить следующее

– Network Accsess account;
– добавить роль PXE service point;
– добавить 2 пакета (SCCM 2007 Client и XP sysprep);
– создать Operation System image package;
– создать Task Sequence для установки Windows XP;
– импортировать запись о клиентском компьютере.
– создать Advetisement для соответствующей коллекции.

Network Accsess account

Запускаем консоль управления SCCM 2007 (Start Menu->Programs->Microsoft System Center->Configuration Manager 2007->ConfigMgr Console

Разворачиваем Site Database->Site Management->M01->Site Settings->Client Agents, щелкаем двойным щелчком на Computer Client Agent и в открывшемся окне свойств на вкладке General нажимаем кнопку Set и указываем наш Network Access account, которым в тестовой среде является администратор домена

.

Добавление PXE service point

Запускаем консоль управления SCCM 2007 (Start Menu->Programs->Microsoft System Center->Configuration Manager 2007->ConfigMgr Console

Разворачиваем Site Database->Site Management->M01->Site Settings->Site Systems, выбираем наш сервер, щелкаем на нем правой кнопкой мышки и в выпадающем меню выбираем New Roles.

Дабы не смущать рабочую среду появлением еще одного PXE сервера, я установил параметр отвечать только на интерфейсе с определенным MAC адресом. Данный сетевой интерфейс находится в тестовом vlan и не пересекается с рабочей средой. Конфигурирование данного параметра не является обязательным.

После добавления данной роли добавляется еще одна Distribution point – SERV1\SMSPXEIMAGES$. На ней должны располагаться только загрузочные образы. Ничего другого на ней быть не должно. У нас имеются 2 загрузочных образа, для x86 и x64 платформ. Образы эти устанавливаются автоматически и где-либо искать их или устанавливать вручную нет необходимости. Нам необходимо лишь опубликовать на нужной Distribution point – SERV1\SMSPXEIMAGES$. В консоли управления разворачиваем Site Database->Computer Management->Operating System Dployment->Boot image (x86)->Distribution Poins, щелкаем на этой ветви правой кнопкой мышки и в выпадающем меню выбираем New Distribution Poins.


Также проделываем аналогичную операцию с х64 образом. Если вы не собраетесь использовать 64-х битные ОС, наличие этого образа все равно необходимо. Все дело в том, что практически все новые компьютеры являются x64 совместимыми и биос исправно об этом сообщает. Загрузка х64 образа не заставляет вас устанавливать 64-х битную ОС.

Импортирование записи о клиентском компьютере

SCCM при получении PXE запроса отвечает только тем клиентам, которых он знает. Для первоначального разворачивания системы на целевом компьютере необходимо импортировать данные о нем. В нашем случае идентификатором компьютера будет его MAC адрес. Для импортирования записи о компьютере в консоли управления разворачиваем Site Database->Computer Management->Software Distribution->Operating System Deployment->Computer Association щелкаем на этой ветке правой кнопкой мышки и в выпадающем меню выбираем New->Import Computer Information

В нашем случае мы выполняем импорт одного компьютера вручную, поэтому выбираем Import single computer

Затем указываем MAC адрес нашего компьютера и его имя.

Импортируем компьютер в коллекцию All systems

Собственно в этом месте можно уже начинать тестировать бездисковую загрузку. Если сейчас попробовать попытаться загрузиться по сети на рабочей станции, мы увидим следующую картинку. Это будет означать что клиент успешно получил все параметры от DHCP сервера, потом успешно получил загрузчик от PXE сервера и связался с SCCM сервером. После чего понял, что делать ему пока нечего и прекратил свою работу.

Дальше продолжать настрояки не имеет смысла, т.к. зупаскать задания просто-напросто будет некому.

Добавление необходимых пакетов (SCCM 2007 Client и XP sysprep)

В процессе разворачивания ОС SCCM автоматически устанавливает своих агентов на целевые рабочие станции, также для снятия образа установленной ОС Windows XP необходима программка sysprep (найти ее можно на диске с Windows XP в файле deploy.cab, для этого его нужно распаковать в какую-либо директорию).

Добавление пакета SCCM 2007 Client

Разворачиваем Site Database->Computer Management->Software Distribution->Packages щелкаем на этой ветке правой кнопкой мышки и в выпадающем меню выбираем New->Package.

В качестве Source directory указываем директорию с SCCM 2007 клиентом из сетевой папки SMS_(site code).

После добавления пакета не забываем его публиковать на Distribution point

Аналогично добавляем пакета для XPSP2 sysprep

В тестовой системе xpsp2 sysprep находится на SCOM 2007 сервере в папке c:\install\sysprep

После добавления пакета не забываем его публиковать на Distribution point

создание Operation System image package

Для этого нам необходимо скопировать содержимое диска с Windows XP SP2 в какую-либо директорию, которая должна быть доступна по сети. В тестовой системе это директория c:\install\XPSP2. Затем в консоли управления разворачиваем Site Database->Computer Management->Software Distribution->Operating System Dployment->Opareting System Install Packages щелкаем на этой ветке правой кнопкой мышки и в выпадающем меню выбираем Add Operating System install Package.

В качестве пути к инсталляции Windows XP SP2 указываем сетевой путь к корню содержимого диска. В нашем случае это \\serv1\Install\XPSP2

После добавления пакета не забываем его публиковать на Distribution point

Создание Task Sequence для установки Windows XP

В консоли управления разворачиваем Site Database->Computer Management->Software Distribution->Operating System Dployment->Task Sequence щелкаем на этой ветке правой кнопкой мышки и в выпадающем меню выбираем Task Sequence.

Создаваемое задание – Build and Capture operating system image, затем выбираем загрузочный образ в зависимости от архитектуры целевой машины.

Затем выбираем собственно образ инсталляционных файлов разворачиваемой операционной системы, указываем ключ и если необходимо – пароль администратора. Также указываем, нужно ли включать целевой компьютер в домен и если нужно, то необходимый OU и учетную запись пользователя который будет использоваться при добавлении компьютера в домен. Также указываем куда же будет сохраняться образ.

Создание Advetisement

В консоли управления разворачиваем Site Database->Computer Management->Software Distribution->Operating System Deployment->Computer Association. Щелкаем правой кнопкой мышки на только что созданном Task sequence и в контекстном меню выбираем Advertise

Назначать такой Advetisement на коллекцию All systems в рабочей системе (да и в тестовой тоже) не очень хорошая идея, это может привести к уничтожению всех данных на всех компьютерах (SCCM сервер входит в число этих всех компьютеров)

Крайне рекомендую сделать отдельную коллекцию, в качестве члена этой коллекции добавить компьютер, который чуть раньше был импортирован в коллекцию All Systems и назначать Advetisement уже на эту коллекцию

Теперь включаем целевой компьютер, в BIOS выбираем грузиться по сети. Если все сделано правильно, любуемся процессом установки WIndows XP

Логин по ssh без ввода пароля между FreeBSD машинами

на машине, откуда пойдём:
ssh-keygen -t dsa – соглашаемся с местом хранения и вводим пустой пароль, просто жмём Enter.
Далее публикуем наш публичный ключ на машину, куда будем идти. Тут же, на нашей исходной машине:
cat ~/.ssh/id_dsa.pub | ssh user@remote.host.com “cat – >> .ssh/authorized_keys”
Последний раз вводим пароль на удалённую машину.
Проверяем: ssh user@remote.host.com не должен спрашивать пароля.