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

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

Arsenik77 28-10-2011 21:43 1783916

Запуск AIDA на всех компах в сети
 
Нужно запустить в тихом (скрытом) режиме AIDA64, чтоб собрать данные о установленном железе.
Для этого нужно скопировать АИДУ на локальные компы пользователей домена.
Структура имен компьютеров K1, K2..K10..K100...K320 , все что начинается не на "K" сервера, их обрабатывать не надо, домен UOA. Права администратора есть, копировать и запускать прогу могу.
Прога должна отработать один раз, затем её запускать нет смысла.
Желательно увидеть список компьютеров на которых запускалась прога, чтобы проверить не обработанные прогой компы.


call aida64.exe /r %COMPUTERNAME% /silent /html /hw

Код:

@echo on
set MyDomain=UOA
net view /DOMAIN:UOA > comps.txt         
rem Загвоздка как вытащить имя компа начинающийся на K
FOR /F "skip=4 tokens=1 " %%i in (comps.txt) do (
If Exist "%COMPUTERNAME%.htm" (
rem Контроль на повторный запуск проги
  GoTo :NEXT
)
copy c:\aida64\*.* "\\%COMPUTERNAME%\c\aida64" /y
NET.EXE START telnet %COMPUTERNAME%
call c:\aida64\aida64.exe /r %COMPUTERNAME% /silent /html /hw
copy "\\%COMPUTERNAME%\c\aida64\report\%COMPUTERNAME%.htm" \\fs\inventory$ /y

:Next
)


Iska 28-10-2011 23:49 1783993

Цитата:

Цитата Arsenik77
Загвоздка как вытащить имя компа начинающийся на K »

Код:

@echo off
setlocal enableextensions enabledelayedexpansion



for /f "skip=4 tokens=1" %%i in (comps.txt) do (
        set sName=%%i
        if /i "!sName:~0,1!" equ "K" echo [!sName!]
)



endlocal
exit /b 0


Arsenik77 29-10-2011 09:27 1784143

Структура файла comps.txt , нужны только имена компьютеров начинающиеся на K (без // и заметок)
Iska, твой код почему-то не работает.


Код:

Имя сервера            Заметки

-------------------------------------------------------------------------------
\\BK     
\\K5                  АБК;7 этаж;Сбыт                                             
\\K100                Компьютер Васи                             
\\K105                Домашний                           
\\K108                Рабочий комп     
\\PROXY                                                                       
\\PT


Iska 29-10-2011 11:36 1784194

Цитата:

Цитата Arsenik77
Iska, твой код почему-то не работает. »

Если б Вы сразу выложили образец, или, если бы у меня в тот момент был доступ к сети, и я мог бы сам получить образец ;), я бы сделал так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion



for /f "skip=4 tokens=1" %%i in (comps.txt) do (
        set sUNCName=%%i
        set sServerName=!sUNCName:~2!
        if /i "!sServerName:~0,1!" equ "K" echo [!sServerName!]
)



endlocal
exit /b 0


PIL123 01-07-2012 23:49 1944105

Тоже стоит сейчас задача собрать данные о конфигурации компов в сети. Решил это делать стартап-скриптом. По идее, скрипт должен запускаться, проверять есть ли в хранилище отчётов отчёт о текущем компьютере. Если отчёт есть - ничего не делать, если же отчёта нет - запустить AIDA64 с определёнными параметрами, создать отчёт и положить его в хранилище отчётов. Отчёт представляет из себя файл (формат определяется отдельно в параметрах запуска AIDA64). Называется этот файл аналогично имени компьютера на котором был выполнен отчёт.

В Интернете нашёл 2 варианта скрипта для реализации этой идеи:
1. CMD
Код:

if not exist \\share\audit\%COMPUTERNAME%.txt ( \\share\audit\aida\aida64.exe /R \\share\audit\%COMPUTERNAME% /TEXT /CUSTOM \\share\audit\aida\aida64.rpf ) else exit
2. VBScript

dim ComputerName
Set objNetwork = CreateObject("Wscript.Network")
ComputerName = objNetwork.ComputerName
Set WshShell = WScript.CreateObject("WScript.Shell")

dim ObjFso
Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.FileExists("\\Company.Local\Services\AIDA64 Reports\"+ComputerName+".txt") Then
WshShell.Run "\\Company.Local\Files\Distributives\AIDA64\aida64.exe /R \\Company.Local\Services\AIDA64 Reports\$HOSTNAME /SUM /TEXT /SILENT"
end if


Попробовал запустить у себя на VBScript, но он в такой конфигурации отказывается работать. Методом тыка установил, что проблема в строке выделенной красным - видимо ошибка чисто синтаксическая какая-то, потому что, если изменить в ней путь (выделен жирным шрифтом) на какой-нибудь короткий локальный, типа C:\$HOSTNAME, то скрипт замечательно работает.

Прошу помощи специалистов!

Iska 01-07-2012 23:53 1944108

Проблема в наличии пробела во втором пути. Попробуйте так:
Код:

WshShell.Run """\\Company.Local\Files\Distributives\AIDA64\aida64.exe"" /R ""\\Company.Local\Services\AIDA64 Reports\$HOSTNAME"" /SUM /TEXT /SILENT"

PIL123 02-07-2012 00:01 1944115

Помогло! Спасибо!

PIL123 02-07-2012 18:53 1944493

Проблема с внедрением этого (VBS) скрипта через GPO\Scripts\Startup: http://forum.oszone.net/showthread.php?t=237739
Почему-то скрипт на VBS не удалось мне заставить работать через GPO, как Startup, а, при прочих равных, решение CMD заработало. Парадокс!

Timurgall 02-11-2012 16:27 2017418

Поделитесь опытом создания rpf для Аиды. Интересует короткая информация о системе и железе.

CyberMuesli 02-11-2012 18:49 2017511

Цитата:

Цитата Arsenik77
Нужно запустить в тихом (скрытом) режиме AIDA64, чтоб собрать данные о установленном железе.
Для этого нужно скопировать АИДУ на локальные компы пользователей домена. »

Прочитайте про psexec


Время: 18:18.

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