Войти

Показать полную графическую версию : [решено] Батник - Опрос оборудования с пользовательских пк


Fantastish
21-04-2016, 12:33
Доброго дня. Снова обращаюсь за помощью.
Задача:
Есть список пк выгруженный из АД в текстовый файл построчно, таким образом:
Pc1
Pc2

Требуется получить с них данные: Net-bios имя, Тип и частота процессора , объем оперативной памяти
Далее свести все эти данные построчно в txt или csv для будущей обработки или анализа

Огромное спасибо.

NickM
21-04-2016, 14:06
Fantastish, есть вот такой код

@Echo off
setlocal enableextensions enabledelayedexpansion

set cdtime=%date:~-10%
if not exist %~dp0\GetInfoYouPC md %~dp0\GetInfoYouPC
For /F "Delims=" %%I In (pc.list) Do (
Set cpcname=%%~I
set cfile=%~dp0\GetInfoYouPC\!cpcname!_%cdtime%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC /node:!cpcname! OS GET Caption^,CSDVersion /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "Операционная система: %%B,%%C" "" !cfile!
For /F "Tokens=2,3* Delims=,:" %%A In ('WMIC /node:!cpcname! CPU GET socketdesignation^, Name^, MaxClockSpeed /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "Процессор: %%C,%%B" "" !cfile!
For /F "Tokens=2,3* Delims=,:" %%A In ('WMIC /node:!cpcname! memorychip get banklabel^,capacity^,devicelocator /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "Оперативная память: %%B,%%C" "" !cfile!
For /F "Tokens=2,3 Delims==:" %%A In ('WMIC /node:!cpcname! COMPUTERSYSTEM GET TotalPhysicalMemory /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "Оперативная память(в): %%B" "" !cfile!
For /F "Tokens=2,3* Delims=,:" %%A In ('WMIC /node:!cpcname! BASEBOARD GET Manufacturer^,Product /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "Материнская плата: %%B,%%C" "" !cfile!
For /F "Tokens=2,3* Delims=,:" %%A In ('WMIC /node:!cpcname! path Win32_VideoController GET Name^,AdapterRAM /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "Видеокарта: %%C,%%B" "" !cfile!
For /F "Tokens=2,3* Delims==:" %%A In ('WMIC /node:!cpcname! path Win32_VideoController GET VideoModeDescription /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "Разрешение экрана: %%C" "" !cfile!
For /F "Tokens=2,3* Delims=,:" %%A In ('WMIC /node:!cpcname! DISKDRIVE Where InterfaceType^=^'IDE^' GET Model^,Size /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "Жесткий диск: %%B,%%C" "" !cfile!
For /F "Tokens=2,3* Delims==:" %%A In ('WMIC /node:!cpcname! path Win32_CDROMDrive GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "Привод: %%B" "" !cfile!
For /F "Tokens=2,3* Delims==:" %%A In ('WMIC /node:!cpcname! path Win32_NetworkAdapter Where ^"AdapterTypeId^=0 And NetConnectionStatus^=2^" GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "Сетевая карта: %%B" "" !cfile!
For /F "Tokens=2,3* Delims==:" %%A In ('WMIC /node:!cpcname! path Win32_SoundDevice GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "Звуковая карта: %%B" "" !cfile!
For /F "Tokens=2,3* Delims==:" %%A In ('WMIC /node:!cpcname! product get name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "Установленное ПО: %%B" "" !cfile!
)
GoTo :EOF
:_Func
CHCP 1251 1>nul
If %~1 EQU 1 Echo.%~2 >%4
If %~1 GTR 1 Echo.%~2 >>%4
CHCP 866 >nul




имена компьютеров в pc.list.
Результат - папка с файлами GetInfoYouPC

Может окажется полезным.

Fantastish
21-04-2016, 15:01
А в pc.list компы по какому формату указаны? - вопрос снял
как можно подправить вывод информации?
+яхЁрЎшюээр* ёшёЄхьр: Microsoft Windows 7 Профессиональная ,Service Pack 1
¦ЁюЎхёёюЁ: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz,SOCKET 0,3301
в скрипте вроде как указано, а отработало у меня криво
Спасибо




© OSzone.net 2001-2012