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

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

Ответить
Настройки темы
CMD/BAT - BAT'ник собирающий информацию о системе

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


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

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


Нужно сделать батник, который будет собирать нужную информацию о системе и записывать её в ТХТ
Собрать нужно вот что:
IP внешний (реализовал)
Логин под которым сейчас зашел в систему (реализовал)
Название ОС (реализовал)
Общее количество пользователей в системе (реализовал)
Название процессора (реализовал)
Количество ядер (реализовал)
Частота процессора (реализовал)
Количество ОЗУ (реализовал)
Дата чека (реализовал)
UPTIME системы (работает только отдельным BAT'ником)
Тип учетной записи Админская или юзерская (работает только отдельным BAT'ником)

Порыскав форум и гугл удалось почти всё реализовать самому, только есть не большие проблемы
Вот сам код РАБОЧЕГО батника, он определяет ВНЕШНИЙ ip адрес, собирает всю необходимую информацию
и записывает всё в ТХТ с именем вашего IP (пример 178.254.125.22.txt)
Код: Выделить весь код
@echo off
::::::::::::::
::Узнать IP ::
::::::::::::::
echo option explicit>>ip.vbs
echo dim http:set http=createobject("msxml2.serverxmlhttp")>>ip.vbs
echo http.open "get","http://icanhazip.com",false>>ip.vbs
echo http.send>>ip.vbs
echo wscript.stdout.write http.responsetext>>ip.vbs
echo set http=nothing>>ip.vbs
cscript //b ip.vbs>info.txt
del ip.vbs


:::::::::::::::::::::::::::
:: Записать ЛОГИН в файл ::
:::::::::::::::::::::::::::
echo LOGIN: %UserName% >> info.txt
echo ********************************************** >> info.txt
::::::::::::::::::::::::::
:: Записать название ОС ::
::::::::::::::::::::::::::
if defined ProgramFiles(x86) (set oper=x64) else (set oper=x32)
FOR /F "tokens=1* delims==" %%A IN ('wmic os get caption /Format:List ^| FIND "="') DO set "s=%%~B"
echo █ OS: %s% %oper%  >> info.txt

:::::::::::::::::::::::::::::::::::::::
:: Записать количество пользователей ::
:::::::::::::::::::::::::::::::::::::::
For /F "tokens=2 Delims==" %%J In ('wmic os get numberofusers /Value^|FindStr .') Do set "us=%%J"
echo █ NUMBER OF USERS: %us% >> info.txt

::::::::::::::::::::::::::::::::::
:: Записать название процессора ::
::::::::::::::::::::::::::::::::::
For /F "tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do set "CPU=%%J"
echo █ CPU: %CPU%  >> info.txt

::::::::::::::::::::::::::::::
:: Записать количество ядер ::
::::::::::::::::::::::::::::::
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get numberofcores /Format:List ^| FIND "="') DO set "core=%%~B"
echo █ CORE: %core% >> info.txt

::::::::::::::::::::::::::::::::::::::::::
:: Записать тактовую частоту процессора ::
::::::::::::::::::::::::::::::::::::::::::
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get currentclockspeed /Format:List ^| FIND "="') DO set "s=%%~B"
echo █ FREQUENCY: %s% Mhz >> info.txt

:::::::::::::::::::::::::::::
:: Записать количество RAM ::
:::::::::::::::::::::::::::::
FOR /F "tokens=1* delims==" %%A IN ('WMIC os get totalvisiblememorysize /Format:List ^| FIND "="') DO set "su=%%~B"
set /a sss=%su%/1024
echo █ RAM: %sss% %uu% Mb >> info.txt

::::::::::::::::::::::::
:: Записать дату чека ::
::::::::::::::::::::::::
echo █ CHECK TIME: %DATE% (%TIME%) >> info.txt

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Прочитать IP из файла выше и создать с именем IP txt файл ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setlocal EnableDelayedExpansion
set /p "line="< "info.txt"
ren info.txt %line%.txt
Необходимо в этот батник добавить возможность определения админправ (Админская учетка или нет)
Нашел в интернете такой код, в отдельном BAT'нике он хорошо работает и показывает тип учетной записи,
а если добавляю его в основной код, то ничего не работает
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
	`wmic.exe Group where "LocalAccount=TRUE AND SID = 'S-1-5-32-544'" get Name /value ^| find.exe /i "Name"`
) do set sAdminGroup%%i

if defined sAdminGroupName (
	echo [%sAdminGroupName%] >> info.txt
)

endlocal
exit /b 0
Еще необходимо добавить определение АПТАЙМА системы, нашел вот такой код,
в отдельном BAT'нике он работает, если добавить в основной код, то тоже работает,
но в TXT записывает почему то 2 раза аптайм, это не красиво и нужно бы с этим разобраться

Код: Выделить весь код
::UPTIME
@echo off
for /f "delims=" %%a in ('wmic OS Get LastBootUpTime ^| find "."') do set up=%%a
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set beg=%up:~0,4%-%up:~4,2%-%up:~6,2%T%up:~8,2%-%up:~10,2%-%up:~12,2%-%up:~15,3%
set end=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%T%dt:~8,2%-%dt:~10,2%-%dt:~12,2%-%dt:~15,3%
call :TimeDifference uptime %end% %beg% 
echo %beg%
echo %end%
echo UPTIME: %uptime% >> info.txt
:TimeDifference Return_Variable Start_Date_Time Stop_Date_Time
SetLocal EnableExtensions EnableDelayedExpansion
For /F "tokens=1-14 delims=T/:-., " %%a in ("%~2 %~3") Do (
  Set "h2=0%%d" & Set "h3=0%%k" & Set "n2=%%g00" & Set "n3=%%n00"
  Set /A "y2=%%a, m2=1%%b-100, d2=1%%c-100, h2=1!h2:~-2!-100, i2=1%%e-100, s2=1%%f-100, n2=1!n2:~0,3!-1000"
  Set /A "y3=%%h, m3=1%%i-100, d3=1%%j-100, h3=1!h3:~-2!-100, i3=1%%l-100, s3=1%%m-100, n3=1!n3:~0,3!-1000"
)
Set /A "t2=((h2*60+i2)*60+s2)*1000+n2, t3=((h3*60+i3)*60+s3)*1000+n3"
Set /A "a=(14-m2)/12, b=y2-a, j2=(153*(12*a+m2-3)+2)/5+d2+365*b+b/4-b/100+b/400"
Set /A "a=(14-m3)/12, b=y3-a, j3=(153*(12*a+m3-3)+2)/5+d3+365*b+b/4-b/100+b/400"
Set /A "d=j3-j2, t=t3-t2"
If %d% LEQ 0 (If %d% LSS 0 (Set /A "d=j2-j3, t=t2-t3") Else If %t% LSS 0 (Set /A "t=t2-t3"))
If %t% LSS 0 (Set /A "t+=(1000*60*60*24), d-=1")
Set /A "n=t %% 1000, t/=1000, s=t %% 60, t/=60, m=t %% 60, t/=60"
EndLocal & Set "%~1=%d% days, %t% hours, %m% minutes"
pause>nul
После запуска BAT'ника хочу чтобы собранная информация выглядела вот так:
Код: Выделить весь код
196.223.213.23
LOGIN: ROOT 
ACCOUNT TYPE: [Administrator]
********************************************** 
█ OS: Microsoft Windows 7 Ultimate  x64  
█ NUMBER OF USERS: 1 
█ CPU: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz  
█ CORE: 4 
█ FREQUENCY: 3201 Mhz 
█ RAM: 8097  Mb 
█ CHECK TIME: 21.08.2017 (13:36:57,23) 
█ UPTIME: 0 days, 2 hours, 34 minutes 
**********************************************
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:50, 21-08-2017

 

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


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

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


Забыл уточнить, все команды естественно нашел в интернете и собрал в один BAT'ник, сам в этом практически ничего не понимаю, поэтому не пинайте)
И еще такая проблема: сам код сначала создает файл info.txt и записывает в него всю информацию, а в конце переименовывает info.txt в IP_сервера (расширение почему-то не пишется). Как исправить?
Код: Выделить весь код
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Прочитать IP из файла выше и создать с именем IP txt файл ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setlocal EnableDelayedExpansion
set /p "line="< "info.txt"
ren info.txt %line%.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:59, 21-08-2017 | #2



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

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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Bat-ник создания текстовика hancogruss Скриптовые языки администрирования Windows 6 19-09-2016 01:19
CMD/BAT - Bat'ник, который создает bat'ник и RDP ivanxam Скриптовые языки администрирования Windows 1 22-01-2016 14:10
PowerShell - Скрипт, собирающий информацию о открытых файлах XLS rudimko Скриптовые языки администрирования Windows 3 09-10-2012 19:17
Разное - [решено] Переделайте c++ в bat-ник VokaMut Программирование и базы данных 5 10-08-2011 18:08
bat'ник mikola1983 Хочу все знать 10 03-08-2007 10:46




 
Переход