Показать полную графическую версию : [решено] Сбор информации о системе bat
Добрый день!
Я знаю про то, что есть wmi/systeminfo
Но соль в том что у нас стоят как Seven pro, XP pro так и XP HOME
Есть утилита хорошая CPU-Z она срабатывает на всех системах, но слишком много ненужной информации. Нужна только основная.
Возможно ли с помощью bat вытащить информацию такую как:
Название ОС , архитектуру и модель процессора, модель материнской платы, объем оперативки (желательно в Mb), объем жестких дисков (желательно в Mb), модель видеоадаптера.
что я уже нашел:
Название ОС
ver
Архитектура процессора
echo %PROCESSOR_ARCHITECTURE%
Где то видел как узнать объем HDD но потерял источник, никак не могу найти..
PowerShell ставится в качестве обновления ХР - [решено] Сбор и анализ сведений о системе с помощью PowerShell (http://forum.oszone.net/thread-257054.html)
Примерно так:
$OS = gwmi win32_operatingsystem -property caption,osarchitecture,version
$SystemInfo = new-object –type psobject –property @{
"Name" = $OS.Caption
"Arch" = $OS.OSArchitecture
"Version" = $OS.Version
}
$HardwareInfo = new-object –type psobject –property @{
"CPU" = (Get-Wmiobject Win32_Processor)["Name"]
"RAM" = (get-wmiobject Win32_Computersystem)["TotalPhysicalMemory"]
}
write-host Компьютер работает под управлением $($SystemInfo.Name) $($SystemInfo.Version) $($SystemInfo.Arch)
write-host Установлен процессор $($HardwareInfo.CPU)
write-host Системе доступно $([int]$(($HardwareInfo.RAM)/1mb)) Mb оперативной памяти
и т.д.
PowerShell ставится в качестве обновления ХР »
Это хорошо, а средствами bat есть возможность?
timbird, конечно, посмотрите - там везде используется WMI. Используйте wmic (http://www.google.ru/#newwindow=1&output=search&sclient=psy-ab&q=system+information+wmic).
Возможно ли с помощью bat вытащить информацию »
«wmic.exe /?». Набор соответствующих классов и свойств возьмите из сообщения выше (http://forum.oszone.net/post-2135672.html#post2135672). Например:
wmic.exe /node:ComputerVasjaPupkin Path Win32_OperatingSystem get Caption, OSArchitecture, Version
Вместо «Path Win32_OperatingSystem» «wmic.exe» позволяет использовать псевдоним «OS». Обращайте внимание на существование классов и их свойств для конкретных ОС. Например, у вышеуказанного класса Win32_OperatingSystem (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspx) свойство «OSArchitecture» существует только для ОС от Vista и старше:
Windows Server 2003, Windows 2000, Windows NT 4.0, Windows XP, and Windows Me/98/95: This property is not available.
Читайте описания классов и свойств.
P.S.
Я знаю про то, что есть wmi/systeminfo
Но соль в том что у нас стоят как Seven pro, XP pro так и XP HOME »
Похоже, что мало знаете. Технология Wbem (у Вас — «wmi») в аккурат для того и предназначена.
P.P.S. Вы совершенно напрасно не хотите установить и пользовать PowerShell.
«wmic.exe /?» »
Это работает на профессиональных версиях, на домашних (xp home) нет такой фичи
timbird, я полагаю, для сбора информации одну-то Professional:
Но соль в том что у нас стоят как Seven pro, XP pro так и XP HOME »
на производстве Вы найдёте? Да, «wmic.exe» отсутствует в комплекте Home Edition. Но для того, чтобы Home Edition отвечала на Wbem-запросы, этого и не требуется.
Iska, я кажется понял Вас. С помощью wmic можно собрать инфу не только локальном ПК но и в сети, да? не знал, надо почитать.
Суть в том, что специальный батник отправлется пользователю, тот его запускает: батник конфигурирует систему, инсталирует необходимые программы, а также должен собирать инфу о железе и сохранять в текстовом файле на общем ресурсе. С проф версиями проблем нет, я использую код найденный в нэте который как раз и использует средства wmic
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC OS GET Caption^,CSDVersion /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo OS: %%B, %%C >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC CPU GET Name^,MaxClockSpeed /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo CUP: %%C, %%B MHz >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /f "usebackq tokens=1,2 delims==" %%i in (`wmic.exe ComputerSystem GET TotalPhysicalMemory /VALUE ^|find.exe "TotalPhysicalMemory"`) do (
set /a iTotalPhysicalMemory = "%%j>>20"
)
echo RAM: %iTotalPhysicalMemory% Mb >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC COMPUTERSYSTEM GET TotalPhysicalMemory /VALUE^|FindStr .^|FindStr /n .') Do Call echo RAMb: %%B bytes >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC DISKDRIVE Where InterfaceType^=^'IDE^' GET Model /VALUE^|FindStr .^|FindStr /n .') Do Call echo HDD: %%B >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC path Win32_VideoController GET Name^,AdapterRAM /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo VIDEOCARD: %%C, %%B bytes RAM >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BASEBOARD GET Manufacturer^,Product /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo MOTHERBOARD: %%B, %%C >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_NetworkAdapter Where ^"AdapterTypeId^=0 And NetConnectionStatus^=2^" GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call echo NETWORK CARD: %%B >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_SoundDevice GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call echo SOUND CARD: %%B >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BIOS GET Manufacturer^,Name /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo BIOS: %%B, %%C >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC path Win32_VideoController GET VideoModeDescription^,CurrentRefreshRate /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo MONITOR: %%C, %%B Hz >> \\192.168.12.223\change\pc\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_CDROMDrive GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call echo DRIVE: %%B >> \\192.168.12.223\change\pc\%date%_%computername%.txt
В общем с компов с проф виндой инфа собирается а с home нет. Но надо почитать про wmic подробнее, спасибо что дали направление.
С помощью wmic можно собрать инфу не только локальном ПК но и в сети, да? »
Угу.
wmic.exe /node:Machine01, Machine02, … MachineNN OS get Caption, Version
Имена/адреса также можно приводить в текстовом файле, имя которого указывать аргументом параметра «/node»:
wmic.exe /node:@c:\MachineList.txt OS get Caption, Version
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC