Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Маленькие хитрости автоустановки

Ответить
Настройки темы
Маленькие хитрости автоустановки

(*.*)


Сообщения: 36572
Благодарности: 6702


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

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 07-06-2008
Описание: добавлены ссылки на статьи сайта
Маленькие хитрости автоустановки

Доброго времени суток!

Предлагаю собирать в этой теме маленькие хитрости, которые мы используем при создании диска автоустановки Windows (и приложений). Это могут быть скрипты или их элементы, утилиты с очень кратким описанием и примерами использования и т.д. Короче, всякие мелочи, которые упрощают вам жизнь и используются для оригинального решения различных задач во время автоустановки.

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

На сайте (new!):В Wiki:
Локальные правила темы
  1. Публикуйте каждую хитрость отдельным сообщением. Так будет легче сослаться на пост, если возникнет необходимость дать ссылку в другой ветке.
  2. Не нужно публиковать в теме твики реестра, за исключением тех случаев когда твик является неотъемлемой частью хитрости. Для твиков прикреплена отдельная тема.
  3. Не нужно задавать вопросы, не относящиеся к опубликованным в теме материалам. Если вы хотите что-то осуществить, но не знаете как - воспользуйтесь правилами создания тем на форуме. Такие вопросы будут удаляться без сожаления.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:26, 22-12-2005

 

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


SAOPP А что смущает?

Отправлено: 11:04, 29-05-2006 | #61



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

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


Аватара для maugli

Пользователь


Сообщения: 60
Благодарности: 2

Профиль | Отправить PM | Цитировать


Прочитал про Sleep.exe.
Подскажите, куда закинуть эту утилитку? В $OEM$\$$\System32\...?

Отправлено: 16:17, 29-05-2006 | #62


Ветеран


Сообщения: 916
Благодарности: 34

Профиль | Отправить PM | Цитировать


LeoRush
?

-------
All my homies dont play better watch what you say and put your glock away, ease back, ease back, ease back before i squeeze that...


Отправлено: 19:11, 29-05-2006 | #63


(*.*)


Сообщения: 36572
Благодарности: 6702

Профиль | Сайт | Отправить PM | Цитировать


SAOPP
Цитата:
зыы Этот пост ОЧЕНЬ понравился, но кто бы подсказал как его немного подредактировать, а то что-то с отсчётом проблемы...
Напишите автору PM, если никто больше не подскажет.

maugli
Цитата:
Прочитал про Sleep.exe. Подскажите, куда закинуть эту утилитку? В $OEM$\$$\System32\
Да.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 20:12, 29-05-2006 | #64


Ветеран


Сообщения: 916
Благодарности: 34

Профиль | Отправить PM | Цитировать


Vadikan
Спасибо, я просто не отписался в этой теме... я давно уже всё перепробовал и отписывался в другой теме на соответствующий вопрос Недостатком autoit явялется то, что он "паузит" систему на время своего выполнения.

-------
All my homies dont play better watch what you say and put your glock away, ease back, ease back, ease back before i squeeze that...


Отправлено: 20:15, 29-05-2006 | #65


Пользователь


Сообщения: 125
Благодарности: 9

Профиль | Отправить PM | Цитировать


Часто при автоустановке желательно знать наличие модема, пишущего CD или DVD, ноутбук ли это, или стационарная машина, а иногда и просто требуется определить наличие конкретной железки!
Лень заморачиваться, поэтому привожу оригинальные autoit-скрипы, идею которых при желании всегда можно реализовать с помощью обычных батников.

Наличие модема
Код: Выделить весь код
RegRead('HKLM\SYSTEM\CurrentControlSet\Services\Modem\Enum','0')
If Not @error Then
;настройка соединений, установка download'еров и т.д. …
EndIf
Наличие пишущего CD или DVD
Код: Выделить весь код
;Наличие CD-RW
If RegRead('HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning','DriveIndex')='' Then Exit
;Наличие DVD-RW (проверен недостаточно)
If RunWait('@ComSpec@ /C reg query "HKLM\SYSTEM\CurrentControlSet\Enum\IDE" /s | find "-RW"','',0)<>0 Then Exit
;установка Nero…
Особые схемы управления питанием ноутбука, AMD (Cool'n'Quiet)
Код: Выделить весь код
If FileExists('%WINDIR%\system32\drivers\CmBatt.sys') Then RunWait('regedit /s nast_powerNB.reg')
If FileExists('%WINDIR%\system32\drivers\asacpi.sys') Then RunWait('regedit /s nast_powerAMD.reg')
Наличие сети
Код: Выделить весь код
$net=RegRead('$HKLM_CC$\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0001','NetCfgInstanceId')
If Not @error Then
;настройка сети
Else
;убрать значок "Сетевое окружение" с Рабочего стола
RegWrite('HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer','NoNetHood','REG_BINARY','00000000')
EndIf
Считывание на стадии cmdlines будущего разрешения экрана
[S]Изюм в том, что заданные в unattend.txt параметры разрешения могут быть избыточными, или же могут "не подхватиться" драйвера…[/S]
Код: Выделить весь код
$screen=1024
If RunWait('@ComSpec@ /C reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses" /s | find "DefaultSettings.XResolution" | find "500"','',0)=0 Then $screen=1280
Проверка наличия конкретной железки
Код: Выделить весь код
$hwid='PCI\VEN_1102&DEV_0002' ;SBlive
If RunWait('@ComSpec@ /C devcon.exe hwids "$hwid$" | find "$hwid$"','',0)=0 Then
;продолжение установки дров
EndIf
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:26, 19-06-2006 | #66


Аватара для qeraser

Старожил


Сообщения: 387
Благодарности: 40

Профиль | Отправить PM | Цитировать


Sanja Alone

К сожалению не получается сделать, чтобы Ваш файл корректно работал у меня. Не работает список апдейтов и не извлекает серийник

Тестировал на дистрибутиве лежащем на винте D:\XPCD\WINDISTRIB\WINXPU\

Вот слегка отредактированный вариант (поменял пути)

Код: Выделить весь код
@echo off

rem <--- ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ --->
rem полный путь и имя файла oeminfo
set OEMFILE=%SYSTEMROOT%\system32\oeminfo.ini
rem маркерный файл для определения cdrom-а
set TAGFILE=WIN51
rem производитель
set MANUFACTURER=Ivan
rem модель
set MODEL=Unattended XP DVD
rem кол-во апдейтов в одной строке
set UPMAX=6
rem вписывать или нет серийник в файл oeminfo (1 - да; 0 - нет)
set KEY=1
rem сделать ли видимым серийник в окне "Сведения о поддержке" (1 - да; 0 - нет)
set KEYISVISIBLE=0
rem присвоение переменной CDROM буквы cdrom-а, определенной по маркерному файлу
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%d:\%TAGFILE% set CDROM=%%d:
rem каталог с апдейтами
set UPDATESDIR=d:\XPCD\WINDISTRIB\WINXPU\I386\SVCPACK
rem маска для отбора файлов в каталоге апдейтов (*.* - все; *.cat - только каталоги безопасности; KB*.* - только начинающиеся с KB и т.п.)
set UPDATESMASK=*.*
rem Обеспечение правильности отработки мультизагрузочного CD/DVD
set WINNTSIF=d:\XPCD\1xpu\winnt.sif

rem <--- ОКОНЧАНИЕ ОБЪЯВЛЕНИЯ ПЕРЕМЕННЫХ --->

rem Т.к. используется символ ">", то существующий файл oeminfo.ini будет перезаписан;
rem т.о. нет нужды его предварительно удалять
echo [General]> "%OEMFILE%"
echo Manufacturer=%MANUFACTURER%>> "%OEMFILE%"
echo Model=%MODEL%>> "%OEMFILE%"

rem Достаем из winnt.sif (winn1.sif) серийный номер
rem Это работает независимо от вида записи ProductKey=XXXX или ProductKey = XXXX (с пробелами)
if defined WINNTSIF (
	if %KEY% == 1 (
		for /F "tokens=3 delims==] " %%j in ('find /I /N "ProductKey" %WINNTSIF%') do (
		if %KEYISVISIBLE% == 1 (
			echo [Support Information]>> "%OEMFILE%"
			echo Line1=ProductKey: %%j>> "%OEMFILE%"
			echo Line2=>> "%OEMFILE%"
			set i=3
		) else (
			echo [OEMSpecific]>> "%OEMFILE%"
			echo SerialNo=%%j>>"%OEMFILE%"
			echo [Support Information]>> "%OEMFILE%"
			set i=1
	))
	) else (
		echo [Support Information]>> "%OEMFILE%"
		set i=1
	)
) else (
echo [Support Information]>> "%OEMFILE%"
set i=1
)

rem Дата и время инсталляции ОС в формате DD.MM.YYYY (hh:mm), например 20.05.2005 (14:37)
echo Line%i%=Installation Date and Time: %date% (%time:~0,-6%)>> "%OEMFILE%"
set /A i+=1
echo Line%i%=>> "%OEMFILE%"
set /A i+=1
echo Line%i%=Installed Components and Updates:>> "%OEMFILE%"
set /A i+=1
echo Line%i%=>> "%OEMFILE%"
set /A i+=1

rem Определение общего кол-ва файлов в каталоге апдейтов соотв-щих маске (для рус. и англ. Винды)
for /F "usebackq tokens=1" %%m in (`dir %UPDATESDIR%\%UPDATESMASK% ^| find /i "file(s)"`) do (set numfiles=%%m)
if not defined numfiles (
for /F "usebackq tokens=1" %%m in (`dir %UPDATESDIR%\%UPDATESMASK% ^| find /i "файлов"`) do (set numfiles=%%m)
)

rem вспомогательные переменные
set l=0
set c=0

rem Список апдейтов (имена всех файлов без расширений)
rem (без ключевого слова usebackq команда dir будет воспринята как 
rem имя файла для подстановки в цикл FOR с последующей выдачей сообщения 
rem об отсутствии такого файла в текущем каталоге).
for /F "usebackq tokens=1 delims=." %%j in (`dir /B %UPDATESDIR%\%UPDATESMASK%`) do ((set kbname=%%j) & (call :myprint))

rem Выход из этого пакетного файла.
rem Команда GOTO принимает в качестве метки перехода строку :EOF, которая вызывает
rem передачу управления в конец текущего пакетного файла. Это позволяет легко
rem выйти из пакетного файла без определения каких-либо меток. (из справки по goto)
goto :EOF

:myprint
if %c% == 0 (
	set str=%kbname%
) else (
	set str=%str%  %kbname%
)

set /A c+=1

if %c% == %UPMAX% (
	echo Line%i%=%str%>> "%OEMFILE%"
	set /A i+=1
	set /A l+=1
	set str=
	set c=0
	set /A tmp=numfiles-l*UPMAX
) else (
	if %numfiles% LSS %UPMAX% (
		if %c% == %numfiles% (
			echo Line%i%=%str%>> "%OEMFILE%"
		)
	)
	if %tmp% LSS %UPMAX% (
		if %c% == %tmp% (
			echo Line%i%=%str%>> "%OEMFILE%"
		)
	)
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:04, 14-08-2006 | #67


Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


qeraser
Цитата:
Не работает список апдейтов
Можно добавить в файл принудительное включение расширенной обработки команд:
Код: Выделить весь код
SETLOCAL ENABLEEXTENSIONS
Цитата:
и не извлекает серийник
При наличии самого файла winn?.sif и серийника в строке ProductKey = серийник этого файла, такое возможно лишь в сл. установленного атрибута "скрытый" для файла winn?.sif.

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 09:40, 15-08-2006 | #68


Аватара для qeraser

Старожил


Сообщения: 387
Благодарности: 40

Профиль | Отправить PM | Цитировать


Sanja Alone
Разобрался.
Код: Выделить весь код
Не работает список апдейтов
надо было сохранить батник в DOS-866 кодировке.
Код: Выделить весь код
не извлекает серийник
не включил параметр KEYISVISIBLE

Я слегка отредактировал батник чтобы он отображал еще и количество исправлений.

В стиле
Код: Выделить весь код
Installed Components and Updates (109)

Последний раз редактировалось qeraser, 15-08-2006 в 10:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:58, 15-08-2006 | #69


Аватара для Netlick

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

-------
© Copyright 2002-2006, Netlick. All rights ignored:)


Отправлено: 19:52, 24-08-2006 | #70



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Маленькие хитрости автоустановки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Маленькие скрипты на каждый день [mzd] Общий по Linux 26 09-03-2009 20:09
Прочее - Хитрости с сетью! <попытка отъесть полосу пропускания> Martion Сетевые технологии 8 11-12-2008 17:26
Разное - Хитрости Windows Vista Ydav Microsoft Windows Vista 1 05-04-2008 20:09
Internet Explorer 7 - "Советы и маленькие хитрости" OSZone News Новости и события Microsoft 3 02-04-2008 09:10
Маленькие окна браузера 4ay-nik Microsoft Windows 2000/XP 1 31-01-2007 22:25




 
Переход