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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » [решено] Добавление OEM информации - все вопросы

Ответить
Настройки темы
[решено] Добавление OEM информации - все вопросы

Аватара для ANDYru

Ветеран


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

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


Изменения
Автор: Vadikan
Дата: 18-02-2007
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:47, 18-05-2005

 

Аватара для YuriPet

Ветеран


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

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


Я тут того...
Быстренько скомбинировал "один из двух" (от Sanja Alone и alcos)
Код: Выделить весь код
@echo off

::Магические слова :)
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

::<----- ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ ----->

::Расположение временных файлов
set HF=%SystemDrive%

::Полный путь и имя файла oeminfo
set OEMFILE=%SYSTEMROOT%\system32\oeminfo.ini

::Производитель
set MANUFACTURER=YuriPet

::Количество обновлений в одной строке (по ум. 6)
set UPMAX=6

::Вписывать или нет серийник в файл oeminfo (1 - да; 0 - нет)
set KEY=1

::Сделать ли видимым серийник в окне "Сведения о поддержке" (1 - да; 0 - нет)
set KEYISVISIBLE=0

::Маркерный файл для определения CDROM-а
set TAGFILE=WIN51

::Присвоение переменной 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:&& goto metka
:metka

::Обеспечение правильности отработки мультизагрузочного CD/DVD
if exist %CDROM%\I386\winna.sif (
	set WINNTSIF=%CDROM%\I386\winna.sif
) else (
	if exist %CDROM%\I386\winnt.sif (
		set WINNTSIF=%CDROM%\I386\winnt.sif
	)
)
::Определяем язык ОС (419 - рус.)
::!ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции 
::(ASCII-код символа после знака "равно" должен быть 09)
for /F "tokens=3 delims=	" %%j in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v Locale') do (set lang=%%j)

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

::Удаление существующих файлов с именами, совпадающими с теми, что используются в качестве временных
if exist %HF%\Prog.txt del %HF%\Prog.txt
if exist %HF%\Updates.txt del %HF%\Updates.txt

::Считываем всю строку (usebackq - без кавычек) ключа "BuildLab" из реестра и присваеваем её переменной "BUILD"
FOR /F "usebackq tokens=* delims==" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLab`) do set BUILD=%%i

::Т.к. используется символ ">", то существующий файл oeminfo.ini будет перезаписан;
::т.о. нет нужды его предварительно удалять
echo [General]> "%OEMFILE%"
if %lang% == 00000419 (
	echo Manufacturer=Установил: %MANUFACTURER%>> "%OEMFILE%"
	echo Model=Сборка: %BUILD:~-21%>> "%OEMFILE%"
) else (
	echo Manufacturer=Manufacturer: %MANUFACTURER%>> "%OEMFILE%"
	echo Model=Build: %BUILD:~-21%>> "%OEMFILE%"
)

::Достаем из winnt.sif (winna.sif) серийный номер
::Это работает независимо от вида записи ProductKey=XXXX или ProductKey = XXXX (с пробелами)
::Если номер не будет виден в окне "Сведения о поддержке"
::то в файле oeminfo.ini номер будет в строке SerialNo=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%"
			if %lang% == 00000419 (
				echo Line1=Ключ продукта: %%j>> "%OEMFILE%"
			) else (
				echo Line1=Product Key: %%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
)

::Произвольная информация, для отображения в окне "Сведения о поддержке"
echo Line%i%=Установлена операционная система Windows XP Professional>> "%OEMFILE%"
set /A i+=1
echo Line%i%=с интегрированным Service Pack 2, и последующиими пакетами>> "%OEMFILE%"
set /A i+=1
echo Line%i%=обновлений системы защиты и программного обеспечения.>> "%OEMFILE%"
set /A i+=1
echo Line%i%=>> "%OEMFILE%"
set /A i+=1

::Считываем из реестра наименования установленных программ и обновлений и выводим во временный файл Prog.txt
for /F "usebackq tokens=7 delims=\" %%z IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"`) do echo %%z >> %HF%\Prog.txt

::Выделяем из файла Prog.txt обновления (с именем "KB*") и выводим во временный файл Updates.txt
for /F "usebackq  eol=! tokens=*" %%g IN (`find /i "KB" %HF%\Prog.txt`) do echo %%g >> %HF%\Updates.txt

::Считываем из реестра информацию о "DotNetFx 1.1" и дописываем в файл Updates.txt 
for /F "usebackq eol=! tokens=7* delims=\" %%y IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Updates\.NETFramework\1.1"`) do @call :prov "%%y"

::Считываем из реестра информацию о "DotNetFx 2.0" и дописываем в файл Updates.txt 
for /F "usebackq eol=! tokens=7* delims=\" %%k IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Updates\Microsoft .NET Framework 2.0"`) do @call :prov1 "%%k"

::Считываем из реестра информацию о "MSXML 6.0 Parser (KB925673)" и дописываем в файл Updates.txt
for /F "usebackq tokens=* delims==" %%r IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{031816E0-7ED4-4F9B-986D-CE9E1A1CC6E5}" /v DisplayName`) do set PS=%%r
echo %PS:~-9,8% >> %HF%\Updates.txt

::Считываем из реестра информацию о "Клиент управления правами Windows (KB839178)" и дописываем в файл Updates.txt
FOR /F "usebackq tokens=* delims==" %%r IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{B820A362-C3CF-411F-880B-9BF5E992B25E}" /v HelpLink`) do set CL=%%r
echo KB%CL:~-6,8% >> %HF%\Updates.txt

::Определяем общее количество обновлений
set numupd=0
for /F "usebackq skip=1 tokens=*" %%n IN (%HF%\Updates.txt) do set /A numupd+=1

::Дата инсталляции ОС (обновления) в формате DD.MM.YYYY, например 20.05.2005
if %lang% == 00000419 (
	echo Line%i%=Дата установки ^(обновления^): %date%>> "%OEMFILE%"
) else (
	echo Line%i%=Installation ^(updation^) date: %date%>> "%OEMFILE%"
)
set /A i+=1
echo Line%i%=>> "%OEMFILE%"
set /A i+=1
if %lang% == 00000419 (
	echo Line%i%=Установлены обновления ^(%numupd%^):>> "%OEMFILE%"
) else (
	echo Line%i%=Installed Updates ^(%numupd%^):>> "%OEMFILE%"
)
set /A i+=1
echo Line%i%=>> "%OEMFILE%"
set /A i+=1

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

::Считываем с файла "Updates.txt" строки и передаём их переменной "kbname1" в тело цикла через переменную "j"
FOR /F "usebackq skip=1 tokens=*" %%j IN (%HF%\Updates.txt) do ((set kbname1=%%j) & (call :myprint))
del /q %HF%\Prog.txt
del /q %HF%\Updates.txt
goto :EOF

:myprint
set kbname=%kbname1:~0,8%
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=numupd-l*UPMAX
) else (
	if %numupd% LSS %UPMAX% (
		if !c! == %numupd% (
			echo Line%i%=!str!>> "%OEMFILE%"
		)
	)
	if !tmp! LSS %UPMAX% (
		if !c! == !tmp! (
			echo Line%i%=!str!>> "%OEMFILE%"
		)
	)
)
goto :eof

:prov1
set k=%~1
echo %k% >> %HF%\Updates.txt

:prov
set u=%~1
echo KB%u:~-6% >> %HF%\Updates.txt

-------

Моим первым "персональным компьютером" был(а) "МИР-1"!


Последний раз редактировалось YuriPet, 25-10-2006 в 09:18. Причина: Учтено замечание [b]Sanja Alone[/b]

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

Отправлено: 09:48, 24-10-2006 | #81



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

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


Покинул форум


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

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


YuriPet

Слушай вот такой прикол сделать чтобы из реестра считывалась инфа например о материнке, о видяхе, то есть об всем оборудывании стоящем на данном компьтере и добавлялась на экран с YuriPet Как думаешь?

Отправлено: 10:03, 24-10-2006 | #82


Аватара для YuriPet

Ветеран


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

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


prokazzza
Думать надо...

-------

Моим первым "персональным компьютером" был(а) "МИР-1"!


Отправлено: 10:06, 24-10-2006 | #83


Покинул форум


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

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


YuriPet

Думай

Отправлено: 10:10, 24-10-2006 | #84


Аватара для YuriPet

Ветеран


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

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


prokazzza
"вытащить" из реестра информацию о любом устройстве совсем не сложно
Например о видеокарте:
Код: Выделить весь код
FOR /F "usebackq tokens=* delims==" %%i IN (`REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000" /v DriverDesc`) do set VIDEO=%%i
Echo Видео: %VIDEO:~22%>>test.txt
По аналогии можно взять наименование любого устройства.

Вопросы:
1. А зачем оно надо?
2. Как ты себе представляешь, это должно выводится?

-------

Моим первым "персональным компьютером" был(а) "МИР-1"!


Отправлено: 23:22, 24-10-2006 | #85


Покинул форум


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

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


YuriPet

Давай попробуем, вместо привычной инфе о проце, будет вся инфа об оборудовании, и большой респект тебе лично

Есть у тя на пробу какой-нить вариант?

придется расширять границы CPL системы, места тама не очень много

Отправлено: 23:36, 24-10-2006 | #86


Аватара для YuriPet

Ветеран


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

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


Такой путь мне не по силам
Это надо глубоко разобраться со структурой файла sysdm.cpl и затем сильно его "покурочить"

-------

Моим первым "персональным компьютером" был(а) "МИР-1"!


Отправлено: 23:49, 24-10-2006 | #87


Покинул форум


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

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


YuriPet

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


Отправлено: 23:52, 24-10-2006 | #88


Аватара для YuriPet

Ветеран


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

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


Нет.
Я за это не берусь.

-------

Моим первым "персональным компьютером" был(а) "МИР-1"!


Отправлено: 00:02, 25-10-2006 | #89


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

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


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

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


prokazzza
Цитата:
инфа о проце
пост #35 этой темы содержит ответ на данный вопрос. Впрочем, как и закинутая тобой в вику статья

Цитата:
всем оборудывании стоящем на данном компьтере и добавлялась на экран
Есть такая поговорка "Що занадто, то не здраво". Здесь она весьма уместна Какой смысл в "Сведениях о поддержке" и/или в "Общих сведениях о системе" дублировать инфу, легко получаемую с пом. штатных утилит systeminfo.exe или msinfo32.exe?


Добавлено (2006-10-28):
Кого заинтересует упомянутая статья о параметрах реестра, содержащих инфу об оборудовании - скачайте любой из архивов по ссылкам, указанным в посте #98 этой темы.

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


Последний раз редактировалось Sanja Alone, 28-10-2006 в 05:08. Причина: Правка ссылки на статью в связи с удалением последней


Отправлено: 05:54, 25-10-2006 | #90



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » [решено] Добавление OEM информации - все вопросы

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[статья] Изменение OEM информации и логотипа Windows Vista Vadikan Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 2 20-02-2014 23:53
$OEM$ не копируется на HDD .:[все вопросы]:. Sparrow Автоматическая установка Windows 2000/XP/2003 104 26-10-2010 04:59
Установка - [решено] Добавление OEM-предложений в win7 Welcome Center borodatiy Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 3 06-11-2009 00:04
Vista / 2008 - Добавление OEM логотипов, соглашений, обоев САШOК Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 7 03-06-2009 12:46
Добавление информации на сайт через вэб-интерфейс Vopros Вебмастеру 1 26-06-2003 08:50




 
Переход