|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Вывод информации о ПК по сети |
|
VBS/WSH/JS - [решено] Вывод информации о ПК по сети
|
Новый участник Сообщения: 9 |
Профиль | Отправить PM | Цитировать Добрый вечер, есть задачка никак не получается её решить. Суть в следующем скрипт выдает информацию о ПК в виде
все замечательно за исключением того что на ПК есть ещё два виртуальных сетевых интерфейса, соответственно скрипт выдает мне первый попавшийся ip mac.
Помогите решить задачу, как заставить скрипт выводить один сетевой интерфейс или записать их друг за другом так Domain\User,F4:6D:04:07:88:AD,10.10.12.1,PC_Name или так Domain\User,F4:6D:04:07:88:AD,10.10.12.1,PC_Name Domain\User,00:50:56:C0:00:08,192.168.12.1,PC_Name Domain\User,00:50:56:C0:00:01,192.168.13.1,PC_Name On error resume next strComputer = Wscript.Arguments.Item(0) If strComputer = "" Then strComputer="." 'Use "." (local computer) if no computer-name was entered Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set IPConfigSet = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") For Each IPConfig in IPConfigSet If Not IsNull(IPConfig.IPAddress) Then For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress) WScript.Echo IPConfig.IPAddress(i) StrIP = IPConfig.IPAddress(i) Next WScript.Echo IPConfig.MacAddress macinfo = IPConfig.MacAddress End If Next If strComputer = "." Then Set objWMIService = GetObject( "winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 ) 'Grab the netbios name of each computer For Each objItem in colItems host = objItem.Name ' WScript.Echo "MAC Address for Computer Name: " & host & " is " & macinfo 'Uncomment to display Next Else host = strComputer End If Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem") For Each objItem In colItems user = objItem.UserName Next strLine = user & "," & macinfo & "," & strIP & "," & host Dim objFile, objFolder, objFSO Dim strFolder, strFile, strLine strFolder = "c:\" strFile = "USERS.txt" Set objFSO = CreateObject("Scripting.FileSystemObject") set objFile = nothing ' For auditing, we want APPEND mode to track all MAC/IPs for the computer Const ForAppending = 8 Set objFile = objFSO.OpenTextFile (strFolder & strFile, ForAppending, True) ' Write Computer Name, MAC address, IP Address(es) and Date to a text file objFile.WriteLine(strLine) objFile.Close wscript.quit(0) |
|
Отправлено: 01:04, 19-02-2015 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать думаю вначале стоило собрать информацию о имени компа и текущем пользователе
а выдачу ответа на консоль вставить в цикле получения информации об IP-адресе и MAC тогда ты получишь несколько строк Измененный код
on error resume next strComputer = Wscript.Arguments.Item(0) ' Use "." (local computer) if no computer-name was entered if strComputer = "" then strComputer="." end if ' GET HOST NETBIOS NAME If strComputer = "." Then Set objWMIService = GetObject( "winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 ) 'Grab the netbios name of each computer For Each objItem in colItems info_nbname = objItem.Name ' WScript.Echo "MAC Address for Computer Name: " & host & " is " & macinfo 'Uncomment to display Next Else info_nbname = strComputer End If ' GET CURRENT USER Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem") For Each objItem In colItems info_user = objItem.UserName Next Dim objFile, objFolder, objFSO Dim strFolder, strFile, strLine strFolder = "c:\" strFile = "USERS.txt" Set objFSO = CreateObject("Scripting.FileSystemObject") set objFile = nothing ' For auditing, we want APPEND mode to track all MAC/IPs for the computer Const ForAppending = 8 Set objFile = objFSO.OpenTextFile (strFolder & strFile, ForAppending, True) ' Write Computer Name, MAC address, IP Address(es) and Date to a text file objFile.WriteLine("NEW LAUNCH") Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set IPConfigSet = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") For Each IPConfig in IPConfigSet If Not IsNull(IPConfig.IPAddress) Then For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress) info_ip = IPConfig.IPAddress(i) Next 'WScript.Echo IPConfig.MacAddress info_mac = IPConfig.MacAddress strLine = info_user & "," & info_mac & "," & info_ip & "," & info_nbname objFile.WriteLine(strLine) MsgBox(strLine) End If Next objFile.Close wscript.quit(0) Обращаю внимание, что я немного поменял названия переменных, чтоб немного понимать, где наши целевые значения находятся |
Отправлено: 15:36, 19-02-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сбор информации с принтеров по сети | DJ Mogarych | Хочу все знать | 23 | 19-04-2017 10:37 | |
CMD/BAT - Как в .bat сделать вывод информации правах? | Eugene Shugaev | Скриптовые языки администрирования Windows | 4 | 12-03-2014 11:55 | |
Мониторинг ПК в сети (состояние ПК (вкл/выкл), запущенность определенного ПО) | Ariezzy | Хочу все знать | 1 | 10-03-2013 03:30 | |
Вывод информации из MySQL | Moon Mag | Вебмастеру | 12 | 09-01-2009 18:44 | |
Вывод информации на двух мониторах | Guest | Программирование и базы данных | 1 | 26-07-2004 15:39 |
|