Разрешение определенных ActiveX только на определенных сайтах

Кому из Вас не надоедала FLASH реклама. Избавиться от нее достаточно просто, достаточно не устанавливать ActiveX компонент, который за воспроизведение отвечает или отключить его. Но на том же YouTube смотреть видео ве-таки хочется. В Internet Explorer 8 (на других не проверял) можно указать какому компоненту на каких сайтах можно работать. В меню идем по пути Tools->Internet Options->Programs->Manage add-ons. В списке находим например Shokwave Flash Object и выбираем его. Далее либо жмем More Information либо щелкаем правой кнопкой мыши по выбраному объекту и опять же выбираем More Information. В свойствах нас интересует Class ID выбранного объекта.

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

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains\vkontakte.ru]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains\forum.od.ua]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore\AllowedDomains\www.youtube.com]

Сохраняем его под любым именем с расширением reg и импортируем этот файл в реестр.

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

Заходим в свойства объекта, как приведено выше и видим, что компонент может запускаться только на указанных сайтах

Быстрые клавиши командной строки и Powershell

Может конечно написаное ниже для кого-то секретом не является, но я это обнаружил чисто случайно. Прогоняя попугая с клавиатуры случайно нажал F7, активным окном была командная строка. К моему удивлению отобразилась история команд. Выглядит это так:

Быстрый поиск привел на сайт http://technet.microsoft.com/en-us/library/ee176868.aspx, который говорит о том, что эта и некоторые другие быстрые клавиши также работают и в консоли powershell.

Некоторые команды Cisco

В связи с тем, что Cisco я конфигурирую не так часто, то многое забываю. Так пара команд для себя, чтоб не зыбать.

Включение вывода на терминал: terminal monitor
Отключение вывода на терминал: terminal no monitor
Отключение debug: no debug all

Прокидывание порта во внутрь сети:

ip nat inside source static tcp ipip intport extip extport extendable

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

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