PDA

Показать полную графическую версию : [решено] Вывод информации о ПК по сети


Rusya89
19-02-2015, 01:04
Добрый вечер, есть задачка никак не получается её решить. Суть в следующем скрипт выдает информацию о ПК в виде 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)

DeLit
19-02-2015, 15:36
думаю вначале стоило собрать информацию о имени компа и текущем пользователе
а выдачу ответа на консоль вставить в цикле получения информации об 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)


Обращаю внимание, что я немного поменял названия переменных, чтоб немного понимать, где наши целевые значения находятся




© OSzone.net 2001-2012