|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС |
|
|
CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС
|
|
Новый участник Сообщения: 13 |
Может кто-нибудь поделится скриптом который возвращает версию ОС и ее сервис пак в консоли , с последующим запуском файла в консоли или подсказать соответствие версии сборок ОС (Nt,2k,2k server,xp, 2k3, vista) сервис пакам для нижеприведенного скрипта.
Цитата:
|
||
|
Отправлено: 02:10, 27-05-2009 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Fortress1:
... Start /wait "" "E:\BSPOST\Install\LibreOffice.exe" ... Start /wait "" "c:\Program Files (x86)\Microsoft Office\Options14\MSOO.exe" Цитата Fortress1:
Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86 Set PF=%ProgramFiles% If %xOS%==x64 Set PF=%ProgramFiles(x86)% Echo %xOS% %PF% Цитата Fortress1:
|
|||
|
Последний раз редактировалось gora, 11-02-2013 в 21:47. Отправлено: 15:26, 08-02-2013 | #61 |
|
Пользователь Сообщения: 137
|
Профиль | Отправить PM | Цитировать @echo off
set SYSTEMID=Windows 7 reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "Windows 8" >nul if "%ERRORLEVEL%" == "0" set SYSTEMID=Windows 8 Set FlDrv=%~d0 Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86 Set PF=%ProgramFiles% If xOS==x64 Set PF=%ProgramFiles(x86)% Echo %xOS% %PF% if "%SYSTEMID%" == "Windows 8" ( echo Windows 8 echo Installing Libre Office Start /wait "" "%~d0\BSPOST\Install\LibreOffice.exe" echo Done exit ) echo Windows 7 echo Installing MS Office 2010 Start /wait "" "%PF%\Microsoft Office\Options14\MSOO.exe" echo Done exit На 8ке любой редакции работает без проблем На 7ке х64 все равно выдает ошибку в пути к ПФ (ставит обычную ПФ а не х86) (на ноуте с 8кой определил папку ПФх86 правильно) На 7ке х86 любой редакции работает без проблем (к счастью ноутов сотня так что тестим мгновенно) |
|
------- Последний раз редактировалось Fortress1, 08-02-2013 в 17:02. Отправлено: 16:25, 08-02-2013 | #62 |
|
Старожил Сообщения: 182
|
Профиль | Отправить PM | Цитировать Fortress1,
Кстати, ты батник запускаешь прямо непосредственно сам, или из какой-то программы оболочки? Просто если из программы оболочки, то она очевидно 32-битная и запущеный дочерний батник будет тоже считаться 32-битным и переменная %ProgramFiles% ему будет возвращаться как %ProgramFiles(x86)% даже если он запущен на 64-битной системе. Там надо в проге перед вызовом батника отключать перенаправление потоков для 32 битных программ, чтобы переменные отдавались как есть. |
|
------- Отправлено: 09:35, 09-02-2013 | #63 |
|
Пользователь Сообщения: 137
|
Профиль | Отправить PM | Цитировать батник запускаю руками...из проги еще не пробовал
|
|
------- Отправлено: 10:00, 09-02-2013 | #64 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @echo off set SYSTEMID=Windows 7 reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "Windows 8" >nul if "%ERRORLEVEL%"=="0" set SYSTEMID=Windows 8 Set FlDrv=%~d0 Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86 Set PF=%ProgramFiles(x86)% If %xOS%==x86 Set PF=%ProgramFiles% Echo %%xOS%% - %xOS% Echo %%PF%% - %PF% Echo %%SYSTEMID%% - %SYSTEMID% Echo %%FlDrv%% - %FlDrv% Echo ==================================================== if "%SYSTEMID%"=="Windows 8" ( echo Windows 8 echo Installing Libre Office Start /wait "" "%~d0\BSPOST\Install\LibreOffice.exe" ) Else ( echo Windows 7 echo Installing MS Office 2010 Start /wait "" "%PF%\Microsoft Office\Options14\MSOO.exe" ) echo Done Pause exit |
|
Последний раз редактировалось gora, 11-02-2013 в 21:40. Отправлено: 09:09, 11-02-2013 | #65 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 18:54, 11-02-2013 | #66 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 19:14, 11-02-2013 | #67 |
|
Пользователь Сообщения: 137
|
Профиль | Отправить PM | Цитировать Уважаемый Gora
вот скрин этого скрипта, ответ на который выдал системник с х86 ОС Пробовал как из под BSPOST, так и запущенный руками батник....Итог один - х86 система определяет неправильно |
|
------- Отправлено: 20:59, 11-02-2013 | #68 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Fortress1, исправил.
|
|
Отправлено: 21:40, 11-02-2013 | #69 |
|
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Здравствуйте, Уважаемые Гуру!
Тема очень старая, но может моя информация окажется полезной. В Windows 7 удалось получить часть информации через WMIC. Часть информации через обращение к реестру недоступна, например, при вызове *.bat - файла из-под Total Commander (например, поле CSDVersion раздела HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion). Работает такая схема (на примере получения названия ОС): SET WMICPS=OS
SET WMICPARAM=Caption
FOR /F "delims=" %%a in ('WMIC %WMICPS% GET /FORMAT:LIST ^| FIND /i "%WMICPARAM%"') do ( FOR /F "tokens=1 delims==" %%b in ("%%a") do (IF "%%b"=="%WMICPARAM%" FOR /F "tokens=2 delims==" %%c in ("%%a") do (SET PARAMVOL=%%c)))
Среди прочего по такой схеме: WMICPARAM=OSArchitecture - архитектура ОС WMICPARAM=CSDVersion - версия сервис-пака ("" - без сервис-пака). WMIC также можно использовать для быстрого определения наличия нужного обновления. У меня сработало с использованием временного файла по схеме: |
|
Отправлено: 22:53, 27-01-2018 | #70 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| [решено] Управление 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 | |
|