Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Сбор информации о системе bat (http://forum.oszone.net/showthread.php?t=258954)

timbird 19-04-2013 10:34 2135646

Сбор информации о системе bat
 
Добрый день!

Я знаю про то, что есть wmi/systeminfo
Но соль в том что у нас стоят как Seven pro, XP pro так и XP HOME
Есть утилита хорошая CPU-Z она срабатывает на всех системах, но слишком много ненужной информации. Нужна только основная.

Возможно ли с помощью bat вытащить информацию такую как:

Название ОС , архитектуру и модель процессора, модель материнской платы, объем оперативки (желательно в Mb), объем жестких дисков (желательно в Mb), модель видеоадаптера.

что я уже нашел:

Название ОС
ver

Архитектура процессора
echo %PROCESSOR_ARCHITECTURE%

Где то видел как узнать объем HDD но потерял источник, никак не могу найти..

Vadikan 19-04-2013 11:23 2135672

PowerShell ставится в качестве обновления ХР - [решено] Сбор и анализ сведений о системе с помощью PowerShell

Примерно так:

Код:

$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 оперативной памяти

и т.д.

timbird 19-04-2013 12:40 2135715

Цитата:

Цитата Vadikan
PowerShell ставится в качестве обновления ХР »

Это хорошо, а средствами bat есть возможность?

Vadikan 19-04-2013 17:54 2135979

timbird, конечно, посмотрите - там везде используется WMI. Используйте wmic.

Iska 19-04-2013 18:41 2136019

Цитата:

Цитата timbird
Возможно ли с помощью bat вытащить информацию »

«wmic.exe /?». Набор соответствующих классов и свойств возьмите из сообщения выше. Например:
Код:

wmic.exe /node:ComputerVasjaPupkin Path Win32_OperatingSystem get Caption, OSArchitecture, Version
Вместо «Path Win32_OperatingSystem» «wmic.exe» позволяет использовать псевдоним «OS». Обращайте внимание на существование классов и их свойств для конкретных ОС. Например, у вышеуказанного класса Win32_OperatingSystem свойство «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.
Цитата:

Цитата timbird
Я знаю про то, что есть wmi/systeminfo
Но соль в том что у нас стоят как Seven pro, XP pro так и XP HOME »

Похоже, что мало знаете. Технология Wbem (у Вас — «wmi») в аккурат для того и предназначена.

P.P.S. Вы совершенно напрасно не хотите установить и пользовать PowerShell.

timbird 22-04-2013 13:09 2137542

Цитата:

Цитата Iska
«wmic.exe /?» »

Это работает на профессиональных версиях, на домашних (xp home) нет такой фичи

Iska 22-04-2013 15:37 2137630

timbird, я полагаю, для сбора информации одну-то Professional:
Цитата:

Цитата timbird
Но соль в том что у нас стоят как Seven pro, XP pro так и XP HOME »

на производстве Вы найдёте? Да, «wmic.exe» отсутствует в комплекте Home Edition. Но для того, чтобы Home Edition отвечала на Wbem-запросы, этого и не требуется.

timbird 22-04-2013 16:42 2137670

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 подробнее, спасибо что дали направление.

Iska 22-04-2013 17:26 2137705

Цитата:

Цитата timbird
С помощью wmic можно собрать инфу не только локальном ПК но и в сети, да? »

Угу.
Код:

wmic.exe /node:Machine01, Machine02, … MachineNN OS get Caption, Version
Имена/адреса также можно приводить в текстовом файле, имя которого указывать аргументом параметра «/node»:
Код:

wmic.exe /node:@c:\MachineList.txt  OS get Caption, Version


Время: 22:56.

Время: 22:56.
© OSzone.net 2001-