[решено] Добавление OEM информации - все вопросы

Ответить
 • Просмотры: 1
Аватара пользователя
prokazzza

Re: [решено] Добавление OEM информации - все вопросы

Сообщение prokazzza »

YuriPet



какие номера КВ?



и кол-во у мя 130 штук написано
Аватара пользователя
YuriPet

Re: [решено] Добавление OEM информации - все вопросы

Сообщение YuriPet »

prokazzza

Вопрос снят!

Пора новые очки покупать... Изображение Изображение
Аватара пользователя
alcos

Re: [решено] Добавление OEM информации - все вопросы

Сообщение alcos »

Я действительно два раза изменил содержимое Oeminfo.cmd, так как не все обновления прописываются в одном месте реестра и пришлось добавлять ещё строки.
Аватара пользователя
prokazzza

Re: [решено] Добавление OEM информации - все вопросы

Сообщение prokazzza »

alcos



то то я смотрю что сперва столько-то было, а потом больше обновлений написано стало. Изображение
Аватара пользователя
YuriPet

Re: [решено] Добавление OEM информации - все вопросы

Сообщение YuriPet »

Я тут того...

Быстренько скомбинировал "один из двух
" (от 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
Аватара пользователя
prokazzza

Re: [решено] Добавление OEM информации - все вопросы

Сообщение prokazzza »

YuriPet



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

Re: [решено] Добавление OEM информации - все вопросы

Сообщение YuriPet »

prokazzza


Цитата:



инфа о проце



пост
[решено] Добавление OEM информации - все вопросы
этой темы содержит ответ на данный вопрос. Впрочем, как и закинутая тобой в вику статья




Цитата:



всем оборудывании стоящем на данном компьтере и добавлялась на экран



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





Добавлено (2006-10-28):

Кого заинтересует упомянутая статья о параметрах реестра, содержащих инфу об оборудовании - скачайте любой из архивов по ссылкам, указанным в посте
[решено] Добавление OEM информации - все вопросы
этой темы.
Ответить

Вернуться в «Автоматическая установка Windows 2000/XP/2003»