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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС

Ответить
Настройки темы
CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС

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


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

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


Может кто-нибудь поделится скриптом который возвращает версию ОС и ее сервис пак в консоли , с последующим запуском файла в консоли или подсказать соответствие версии сборок ОС (Nt,2k,2k server,xp, 2k3, vista) сервис пакам для нижеприведенного скрипта.

Цитата:
for /F "tokens=4" %%V in ('ver') do if %%V==[Версия goto

Отправлено: 02:10, 27-05-2009

 

Старожил


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

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


вот запущенный из тотала

Код: Выделить весь код
D:\temp>Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion 


Ошибка: Не удается найти указанный раздел или параметр в реестре.
вот тот же из проводника


Код: Выделить весь код
D:\temp>Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    CSDVersion    REG_SZ    Service Pack 1
весь батник состоит из одной строки

Код: Выделить весь код
Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion

Отправлено: 09:33, 22-06-2009 | #11



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

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


Googler


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

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


на пробу еще два варианта:
Код: Выделить весь код
Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion
Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion" /V CSDVersion
З.Ы. на Win2003 x64 без проблем

Отправлено: 10:31, 22-06-2009 | #12


Старожил


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

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


второго ключа нет , смотрел через regedit.

Первый то есть , но с ним все так же как и раньше.

При чем что интересно, если запускаю проводник из тотала (правой кнопка -> проводник) то все равно не находит, а если через пуск к примеру то находит.

я так понимаю Wow6432Node это ветка которую видят 32битные приложения ?

Отправлено: 11:08, 22-06-2009 | #13


Googler


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

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


Цитата mitiya:
я так понимаю Wow6432Node это ветка которую видят 32битные приложения ? »
угу, а ветка есть, а вот если по сетке с 32-битной подключиться - нету... поэтому можно еще так:
Код: Выделить весь код
@Echo Off

If /I "%Processor_Architecture%"=="x86" Set $KEY=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
If /I "%Processor_Architecture%"=="x64" Set $KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

Set $VAL=CSDVersion
Reg Query "%$KEY%" /v "%$VAL%"

Отправлено: 11:36, 22-06-2009 | #14


Старожил


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

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


в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion нет ключа CSDVersion

Отправлено: 22:10, 22-06-2009 | #15


Googler


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

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


mitiya, как уже сказал, под рукой только Win2003 x64 - там есть, насчет Висты ничего не скажу

Отправлено: 04:41, 23-06-2009 | #16


Старожил


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

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


судя по всему смысл этого глюка в том, что при запуске из тотала cmd как бы наследует "32х битность"
как бы сделать так чтобы она ее не наследовала ?

Отправлено: 10:51, 23-06-2009 | #17


Аватара для Devils0411

Ветеран


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

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


Проблема:
Код: Выделить весь код
set disk=D:\NETBOOT
set XPNA=%disk%\XPNA
set XPNAD=%disk%\XPNAD
set XPA=%disk%\XPA
set XPAD=%disk%\XPAD
FOR /F "tokens=3* delims= " %%i in ('ver') do set version=%%i
If version==5.1 (
goto :XP) else (
goto :next1)
:XP
fsutil hardlink create "%XPNAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
fsutil hardlink create "%XPA%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
fsutil hardlink create "%XPAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
fsutil hardlink create "%XPNAD%\ntdetect.com" "%XPNA%\ntdetect.com"
fsutil hardlink create "%XPA%\ntdetect.com" "%XPNA%\ntdetect.com"
fsutil hardlink create "%XPAD%\ntdetect.com" "%XPNA%\ntdetect.com"
fsutil hardlink create "%XPNAD%\WIN51" "%XPNA%\WIN51"
fsutil hardlink create "%XPA%\WIN51" "%XPNA%\WIN51"
fsutil hardlink create "%XPAD%\WIN51" "%XPNA%\WIN51"
fsutil hardlink create "%XPNAD%\WIN51IP" "%XPNA%\WIN51IP"
fsutil hardlink create "%XPA%\WIN51IP" "%XPNA%\WIN51IP"
fsutil hardlink create "%XPAD%\WIN51IP" "%XPNA%\WIN51IP"
fsutil hardlink create "%XPNAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
fsutil hardlink create "%XPA%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
fsutil hardlink create "%XPAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
junction.exe -q -s "%XPNAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPA%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\$OEM$" "%XPNAD%\$OEM$"
goto :continue
:next1
If version==5.2 (
goto :2003) else (
goto :next2)
:2003
fsutil hardlink create "%XPNAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
fsutil hardlink create "%XPA%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
fsutil hardlink create "%XPAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
fsutil hardlink create "%XPNAD%\ntdetect.com" "%XPNA%\ntdetect.com"
fsutil hardlink create "%XPA%\ntdetect.com" "%XPNA%\ntdetect.com"
fsutil hardlink create "%XPAD%\ntdetect.com" "%XPNA%\ntdetect.com"
fsutil hardlink create "%XPNAD%\WIN51" "%XPNA%\WIN51"
fsutil hardlink create "%XPA%\WIN51" "%XPNA%\WIN51"
fsutil hardlink create "%XPAD%\WIN51" "%XPNA%\WIN51"
fsutil hardlink create "%XPNAD%\WIN51IP" "%XPNA%\WIN51IP"
fsutil hardlink create "%XPA%\WIN51IP" "%XPNA%\WIN51IP"
fsutil hardlink create "%XPAD%\WIN51IP" "%XPNA%\WIN51IP"
fsutil hardlink create "%XPNAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
fsutil hardlink create "%XPA%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
fsutil hardlink create "%XPAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
junction.exe -q -s "%XPNAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPA%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\$OEM$" "%XPNAD%\$OEM$"
goto :continue
:next2
If version==6.0 (
goto :Vista) else (
goto :Seven)
:Vista
mklink /H "%XPNAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
mklink /H "%XPA%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
mklink /H "%XPAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
mklink /H "%XPNAD%\ntdetect.com" "%XPNA%\ntdetect.com"
mklink /H "%XPA%\ntdetect.com" "%XPNA%\ntdetect.com"
mklink /H "%XPAD%\ntdetect.com" "%XPNA%\ntdetect.com"
mklink /H "%XPNAD%\WIN51" "%XPNA%\WIN51"
mklink /H "%XPA%\WIN51" "%XPNA%\WIN51"
mklink /H "%XPAD%\WIN51" "%XPNA%\WIN51"
mklink /H "%XPNAD%\WIN51IP" "%XPNA%\WIN51IP"
mklink /H "%XPA%\WIN51IP" "%XPNA%\WIN51IP"
mklink /H "%XPAD%\WIN51IP" "%XPNA%\WIN51IP"
mklink /H "%XPNAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
mklink /H "%XPA%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
mklink /H "%XPAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
junction.exe -q -s "%XPNAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPA%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\$OEM$" "%XPNAD%\$OEM$"
goto :continue
:Seven
mklink /H "%XPNAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
mklink /H "%XPA%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
mklink /H "%XPAD%\BOOTFONT.BIN" "%XPNA%\BOOTFONT.BIN"
mklink /H "%XPNAD%\ntdetect.com" "%XPNA%\ntdetect.com"
mklink /H "%XPA%\ntdetect.com" "%XPNA%\ntdetect.com"
mklink /H "%XPAD%\ntdetect.com" "%XPNA%\ntdetect.com"
mklink /H "%XPNAD%\WIN51" "%XPNA%\WIN51"
mklink /H "%XPA%\WIN51" "%XPNA%\WIN51"
mklink /H "%XPAD%\WIN51" "%XPNA%\WIN51"
mklink /H "%XPNAD%\WIN51IP" "%XPNA%\WIN51IP"
mklink /H "%XPA%\WIN51IP" "%XPNA%\WIN51IP"
mklink /H "%XPAD%\WIN51IP" "%XPNA%\WIN51IP"
mklink /H "%XPNAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
mklink /H "%XPA%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
mklink /H "%XPAD%\WIN51IP.SP3" "%XPNA%\WIN51IP.SP3"
junction.exe -q -s "%XPNAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPA%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\I386" "%XPNA%\I386"
junction.exe -q -s "%XPAD%\$OEM$" "%XPNAD%\$OEM$"
:continue
При запуске на 2003 не правильно срабатывает. Почему то сразу перескакивает толи к :vista толи к :seven

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 17:39, 03-08-2009 | #18


Googler


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

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


Devils0411, неправильно задается/читается переменная version, примерный шаблон:
Код: Выделить весь код
Echo Off

For /F "Tokens=2 Delims=[]" %%i In ('ver') Do (
   For /F "Tokens=2,3 Delims=. " %%a In ("%%i") Do Set version=%%a.%%b
)

If "%version%"=="5.1" GoTo XP
If "%version%"=="5.2" GoTo W2003
If "%version%"=="6.0" GoTo Vista

:Seven
 Echo Windows 7
GoTo Continue

:XP
 Echo Windows XP
GoTo Continue

:W2003
 Echo Windows 2003
GoTo Continue

:Vista
 Echo Windows Vista
GoTo Continue

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

Отправлено: 03:31, 04-08-2009 | #19


Аватара для Devils0411

Ветеран


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

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


amel27, Странно... Когда делал вот такой тестовый вариант, то на семерке правильно срабатывал скрипт:
Код: Выделить весь код
set disk=D:\test

FOR /F "tokens=3* delims= " %%i in ('ver') do set version=%%i
If version==5.1 (
goto :XP) else (
goto :next1)
:XP
del /S /Q xp.txt
goto :continue
:next1
If version==6.0 (
goto :vista) else (
goto :seven)
:Vista
del /S /Q vista.txt
goto :continue
:Seven
del /S /Q seven.txt
:continue
Если не трудно объясни.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 11:37, 04-08-2009 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Управление FireWall через GPO на Windows без сервис пака. exo Microsoft Windows NT/2000/2003 3 28-09-2009 12:52
Разное - [решено] Изменение метки установленного сервис пака Midge Microsoft Windows 2000/XP 1 24-05-2009 23:02
Microsoft официально запускает XP SP3. Чего следует ожидать от нового сервис пака? OSZone News Новости и события Microsoft 8 23-04-2008 08:09
Определение версии сервис пака по файлам дистрибутива Sparkster Microsoft Windows 2000/XP 3 07-05-2007 22:26
Как изменить версию сервис пака tualatin Microsoft Windows NT/2000/2003 12 10-06-2005 17:03




 
Переход