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

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

Ответить
Настройки темы
CMD/BAT - [решено] Нужна помощь с выгрузкой из WMIC

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


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

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


Добрый день, есть необходимость создать батник для сбора информации о ПК, в процессе написания столкнулся с некоторыми проблемами, буду благодарен если поможете разобраться.

Мой код:
Скрытый текст
@echo on
chcp 1251 >nul
color 70
echo COMPUTER NAME: %computername% >> %date%_%computername%.txt
For /F "Tokens=1* " %%A In ('WMIC OS GET CSDVersion^, Caption^|FindStr .^|More +1^|FindStr /n .') Do echo OS: %%B >> %date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC OS GET OSArchitecture /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do echo ARCHITECTURE: %%B >> %date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC OS GET InstallDate /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do echo INSTALL_DATE: %%B >> %date%_%computername%.txt
WMIC OS GET InstallDate |FindStr : >> %date%_%computername%.txt
For /F "Tokens=1,3* delims=,:" %%A IN ('WMIC OS GET TotalVisibleMemorySize /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do echo RAM: %%B Kb >> %date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC CPU GET Name^ /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do echo CPU: %%B >> %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 echo NETWORK CARD: %%B >> %date%_%computername%.txt
For /F "Tokens=1* Delims==:" %%A In ('WMIC path Win32_NetworkAdapter Where ^"AdapterTypeId^=0 And NetConnectionStatus^=2^" GET MACAddress^|FindStr .^|More +1^|FindStr /n .') Do echo MACAddress: %%B >> %date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BIOS GET Manufacturer^,Name /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do echo BIOS: %%B, %%C >> %date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_SoundDevice GET Name /VALUE^|FindStr .^|FindStr /n .') Do echo SOUND CARD: %%B >> %date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC DISKDRIVE Where InterfaceType^=^'IDE^' GET Model /VALUE^|FindStr .^|FindStr /n .') Do echo HDD: %%B >> %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 echo VIDEOCARD: %%C, %%B bytes RAM >> %date%_%computername%.txt
pause


в результате выдает:
Скрытый текст
COMPUTER NAME: R2D2
OS: Windows 7 Professional Service Pack 1
ARCHITECTURE: 32-bit
INSTALL_DATE: 20150311103240.000000+180
RAM: 3145272 Kb
CPU: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
NETWORK CARD: Ђ¤*ЇвҐа ¬*ЈЁбва*«м*®© бҐвЁ ўЁавг*«м*®© ¬*иЁ*л (Њ*©Єа®б®дв) #6
MACAddress: 00:15:5D:C4:C0:00
BIOS: American Megatrends Inc., BIOS Date: 05/23/12 17:15:53 Ver: 09.00.06
HDD: Virtual HD ATA Device
HDD: Virtual HD ATA Device
VIDEOCARD: , ‚Ё¤Ґ®гбва®©бвў® иЁ*л VMBus (Њ*©Єа®б®дв) bytes RAM


1) Не могу понять почему при выгрузке не меняется кодировка с 866 на 1251, хотя chcp 1251 >nul в начале батника указываю.
2) Подскажите как произвести форматирование выгружаемых данных в строке INSTALL_DATE: с 20150311103240.000000+180 на 2015.03.11 (заменить выгрузку строки не из WMIC а из sysinfo не предлагать)
3) Как перевести выгружаемые данные в строке RAM из Кb в Мb. Побывал сделать через переменную:

Скрытый текст
For /F "Tokens=1,3* delims=,:" %%A IN ('WMIC OS GET TotalVisibleMemorySize /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do (
set /a Memory = "%%B/1024"
)
echo RAM: %Memory% Mb >> %date%_%computername%.txt

но безрезультатно, в чем косяк понять не могу.
4) Если кто знает есть ли возможность через WMIC выгрузить имена учетных записей на ПК (Windows 7). Буду благодарен за пример.

В результате хотелось бы чтобы информация выводилась в следующем формате:
Скрытый текст

COMPUTER NAME: R2D2
OS: Windows 7 Professional Service Pack 1
ARCHITECTURE: 32-bit
INSTALL_DATE: 2015.03.11
RAM: 3072 МB
CPU: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
NETWORK CARD: Адаптер магистральной сети виртуальной машины (Майкрософт) #6
MACAddress: 00:15:5D:C4:C0:00
BIOS: American Megatrends Inc., BIOS Date: 05/23/12 17:15:53 Ver: 09.00.06
HDD: Virtual HD ATA Device
HDD: Virtual HD ATA Device
VIDEOCARD: Видеоустройство шины VMBus (Майкрософт) bytes RAM
USER NAME:

Отправлено: 15:28, 18-11-2015

 

Ветеран


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

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


Цитата 8ash8:
4) Если кто знает есть ли возможность через WMIC выгрузить имена учетных записей на ПК (Windows 7). »
Код: Выделить весь код
@echo off

for /f "skip=1" %%i in ('wmic useraccount get name ^| findstr "."') do echo %%i
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:13, 18-11-2015 | #2



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

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


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


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

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


Добрый день, столкнулся с такой проблемой на домашнем ПК все выгружается нормально, а вот в на работе в домене запрос наглухо виснет (ждал более 30мин.) с чем это может быть связанно кто знает?

Отправлено: 16:57, 17-02-2016 | #3


Ветеран


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

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


Цитата 8ash8:
а вот в на работе в домене запрос наглухо виснет (ждал более 30мин.) с чем это может быть связанно кто знает? »
С опросом доступных контроллеров доменов.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:09, 17-02-2016 | #4


Ветеран


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

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


Задержка в домене происходит из-за получения всех данный из AD, чтобы получить только локальных пользователей, надо использовать фильтр по localaccount:

Код: Выделить весь код
wmic useraccount where localaccount='true' get name
в батнике:

Код: Выделить весь код
wmic useraccount where localaccount^='true' get name

Последний раз редактировалось Kazun, 17-02-2016 в 17:15.

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

Отправлено: 17:09, 17-02-2016 | #5


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


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

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


Спасибо, а не подскажите, как ещё можно сделать выгрузку наименований учетных записей (доменных) на ПК. Может как то через реестр возможно?

Отправлено: 11:06, 18-02-2016 | #6


Аватара для Elven

Ветеран


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

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


Код: Выделить весь код
dsquery user -limit 0 >> result.txt

Последний раз редактировалось Elven, 26-02-2016 в 16:29.

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

Отправлено: 11:37, 18-02-2016 | #7


Ветеран


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

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


Цитата 8ash8:
выгрузку наименований учетных записей (доменных) »
Точно так же, но указать «…where localaccount='false'…» или «… where "localaccount<>'true'" …».
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:03, 18-02-2016 | #8


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


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

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


Цитата Iska:
Цитата 8ash8:
выгрузку наименований учетных записей (доменных) »
Точно так же, но указать «…where localaccount='false'…» или «… where "localaccount<>'true'" …».
Увы, но все равно зависает (((

Отправлено: 13:41, 18-02-2016 | #9


Ветеран


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

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


Цитата 8ash8:
Увы, но все равно зависает ((( »
Ну, это само собой. Раз у Вас раньше «подвисал» опросе контроллеров, то, разумеется, и теперь будет.

Опробуйте рекомендованный выше «dsquery», он работает не через провайдера Wbem, а напрямую с интерфейсами ADSI.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:01, 18-02-2016 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Скрипт копирующий из ftp телефона только новые файлы, нужна помощь !!! Striker1000 Скриптовые языки администрирования Windows 2 14-06-2014 18:48
зависает из-за видеокарты(мое мнение),нужна ваша помощь object268 Непонятные проблемы с Железом 1 08-01-2014 18:08
RAID - Вышел из строя 1 HDD из RAID 5, нужна помощь ADsys Накопители (SSD, HDD, USB Flash) 0 15-11-2012 14:35
[решено] Нужна помощь для выхода из гибернации Tapac Ноутбуки 3 19-09-2011 10:55
Разное - проблема с выгрузкой дисков из DVD-ROM sasa74 Microsoft Windows Vista 2 01-03-2010 10:26




 
Переход