Hab es nun hinbekommen, mit dem folgenden Code kann man in einer Domäne von jedem Computer die Port Geschwindigkeit auslesen, soweit man Rechte hat.
Mh, die Formatierung scheint hier nicht richtig zu funktionieren ;(
Option Explicit
On Error Resume Next
Const strFilePath = "c:\"
Const strFileName = "PortSpeed.txt"
dim objSearchDomains, strDomain, strDomainList, arrDomainList(), iCount, strDomainInput, strDomainExist, objAnalyzeDomain
dim objFs, objFile, objWbemServices
dim colNetAdapterList, colNetAdapterSpeed
dim strPC
dim strAdapterName, strAdapterSpeed
iCount = 0
strDomainExist = false
set objSearchDomains = GetObject("WinNT:")
for each strDomain in objSearchDomains
if iCount <= 0 then
ReDim arrDomainList(iCount)
arrDomainList(iCount) = strDomain.Name
else
ReDim Preserve arrDomainList(iCount)
arrDomainList(iCount) = strDomain.Name
end if
iCount = iCount + 1
strDomainList = strDomainList & strDomain.Name & vbCr
next
if strDomainList <> "" then
strDomainInput = InputBox("Bitte geben Sie die gewünschte Domain ein." & vbCr _
& "Gefundene Domains:" & vbCr & strDomainList, "Domain Eingeben")
if strDomainInput <> "" then
for iCount=0 to uBound(arrDomainList)
if StrComp(arrDomainList(iCount), uCase(strDomainInput)) = 0 then
strDomainExist = true
exit for
end if
next
if strDomainExist = true then
set objAnalyzeDomain = GetObject("WinNT://" & strDomainInput)
objAnalyzeDomain.Filter = array("Computer")
set objFs = CreateObject("Scripting.FileSystemObject")
set objFile = objFs.CreateTextFile(strFilePath & strFileName, true)
for each strPC in objAnalyzeDomain
set objWbemServices = GetObject("winmgmts:\\" & strPC.Name & "\root\cimv2")
if Err.Number = 462 then
objFile.WriteLine "PC: " & strPC.Name & " ||" & " NetController: " & "n/a" & " ||" & " PortSpeed: " & "n/a" & vbCr
Err.Clear
else
set colNetAdapterList = objWbemServices.ExecQuery("Select Name from Win32_NetworkAdapter where AdapterType = 'Ethernet 802.3'")
for each strAdapterName in colNetAdapterList
set colNetAdapterSpeed = objWbemServices.ExecQuery("Select CurrentBandwidth from Win32_PerfRawData_Tcpip_NetworkInterface where Name = '" & strAdapterName.Name & "'")
for each strAdapterSpeed in colNetAdapterSpeed
if strAdapterSpeed.CurrentBandwidth <> "" then
objFile.WriteLine "PC: " & strPC.Name & " ||" & " NetController: " & strAdapterName.Name & " ||" & " PortSpeed: " & (strAdapterSpeed.CurrentBandwidth / 1000) / 1000 & " MBit/s" & vbCr
end if
exit for
next
next
end if
objFile.WriteLine vbCr
next
objFile.close
MsgBox "Die Daten wurden erfolgreich in die Datei " & strFilePath & strFileName & " geschrieben.", 0, "Schreiben erfolgreich"
else
MsgBox "Diese Domain existiert nicht.", 0, "Fehler: Domain existiert nicht."
end if
else
MsgBox "Es wurde keine Domain eingegeben.", 0, "Fehler: Keine Domain Eingabe"
end if
else
MsgBox "Es konnte keine Domains gefunden werden.", 0, "Fehler: Kein Domains vorhanden"
end if