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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Вывод информации о ПК по сети

Ответить
Настройки темы
VBS/WSH/JS - [решено] Вывод информации о ПК по сети

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


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

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


Добрый вечер, есть задачка никак не получается её решить. Суть в следующем скрипт выдает информацию о ПК в виде
Код: Выделить весь код
Domain\User,00:50:56:C0:00:08,192.168.12.1,PC_Name
все замечательно за исключением того что на ПК есть ещё два виртуальных сетевых интерфейса, соответственно скрипт выдает мне первый попавшийся ip mac.
Код: Выделить весь код
10.10.12.1
F4:6D:04:07:88:AD

192.168.13.1
00:50:56:C0:00:01

192.168.12.1
00:50:56:C0:00:08
Помогите решить задачу, как заставить скрипт выводить один сетевой интерфейс или записать их друг за другом
Код: Выделить весь код
 так 

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

 

Аватара для DeLit

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


Сообщения: 1
Благодарности: 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



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

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Вывод информации о ПК по сети

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сбор информации с принтеров по сети 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




 
Переход