Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per Script Netzwerkgeschwindigkeit auslesen?!

Frage Microsoft Windows Netzwerk

Mitglied: 14634

14634 (Level 1)

04.04.2012, aktualisiert 13:02 Uhr, 8208 Aufrufe, 5 Kommentare

Hallo,

ich möchte per Script die eingestellt Netzwerkgeschwindigkeit unserer Client`s auslesen, ist sowas per Script möglich?

Haben eine Windows XP umgebung, unter Systeminfo steht leider nix zur Geschwindigkeit da.
Gibt es hier eine andere möglichkeit?

Danke im voraus

edit:

habe jetzt folgendes gefunden:

Set objWMIService = GetObject("winmgmts:")
Set wnet = CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
Set colNicConfig = objWMIService.ExecQuery("SELECT * FROM " & _
"Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
Const ForAppending = 8
Const ForReading = 1
Const ForWriting = 2

textdateipfad = "C:\"
textdateiname = wnet.ComputerName & ".txt"

On Error Resume next

Set textdatei = fso.CreateTextFile(textdateipfad & textdateiname, True) 'True = Überschreiben
ok = (Err.Number =0)
textdatei.Close
If ok Then
On Error Goto 0
For Each objNicConfig In colNicConfig
If Not IsNull(objNicConfig.IPAddress) Then
strIPAddresses = Join(objNicConfig.IPAddress)
Else
strIPAddresses = ""
End If
If Len(objNicConfig.Index) = 1 Then
nic_intindex = "000" & objNicConfig.Index
ElseIf Len(objNicConfig.Index) = 2 Then
nic_intindex = "00" & objNicConfig.Index
Else
'WScript.Echo nic_intindex
End If
speed = get_nic_speed(nic_intindex)
Set textdatei = fso.OpenTextFile(textdateipfad & textdateiname,ForAppending)
textdatei.WriteLine "Hostname= " & wnet.ComputerName
textdatei.WriteLine "Network Adapter= " & objNicConfig.Index
textdatei.WriteLine "IP Adress(en)= " & strIPAddresses
textdatei.WriteLine "MAC Adresse= " & objNicConfig.MACAddress
textdatei.WriteLine "Description= " & objNicConfig.Description
textdatei.WriteLine "Duplexmodus= " & speed
textdatei.Close
Next
Else
WScript.Echo "Fehler: " & Err.Description
End If


Function get_nic_speed(intindex) 'intindex 4 stellige Indexnummer
Const HKEY_LOCAL_MACHINE = &H80000002
arrmodes = array ("SpeedAndDuplex","SpeedDuplex","ForceSpeedDpx","MediaType","DuplexMode","ConnectionType","RequestedMediaType","ConnectionType_A","ForceSpeedDpx","*SpeedDuplex","EXTPHY")
strComputer = "."
Set oReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
Set wshshell = WScript.CreateObject ("wscript.shell")
for each mode in arrmodes
strlink_desc = "ParamDesc"
strkeylink_desc = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"& intindex & "\Ndi\params\" & mode & "\"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strkeylink_desc,strlink_desc,reglink_desc
if reglink_desc <> "" then
strfinal_key = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"& intindex
strfinal_value = mode
oReg.GetStringValue HKEY_LOCAL_MACHINE,strfinal_key,strfinal_value,regfinal_value
strkey_enum = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\"& intindex & "\Ndi\params\" & mode & "\enum"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strkey_enum,regfinal_value,speed_name
get_nic_speed = speed_name
End If
Next
End Function



leider ließt er nur meine lokalen Einstellungen, ich möchte aber gerne das er eine TXT Liste mit PC`s abarbeitet und mir dann von allen wiedergibt.
Mitglied: 106009
04.04.2012 um 14:52 Uhr
Hi,

Zitat von 14634:
ich möchte per Script die eingestellt Netzwerkgeschwindigkeit unserer Client`s auslesen, ist sowas per Script möglich?

Es sollte eigentlich möglich sein, ist es aber definitiv mit normalen Mitteln nicht, da weder WIMC noch die Powershell 2.0 die Speed- bzw. MaxSpeed-Werte liefern.
Und wenn man sich die ganzen Beiträge dazu im Netzt ansieht, hat es offenbar auch niemand geschafft oder ich habe es überlesen.

Ich würden einen anderen Weg wählen:
Im Key HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318 und dem entsprechenden numerischen Unterkey für den NIC gibt es den REG_DWORD-Wert
"ForceSpeedDpx", der hier für meinen NIC NVIDIA nForce 10/100/1000 Mbps Ethernet folgende Bedeutung aufweist:

0 Aut0Negotiate, ergibt 1 GB/s
1 10 MB Halfduplex
2 10 MB Fulllduplex
3 100 MB Halfduplex
4 100 MB Fullduplex
5 Autonegotiate 10 MB Halfduplex
6 Autonegotiate 10 MB Fullduplex
7 Autonegotiate 100 MB Halfduplex
8 Autonegotiate 100 MB Fullduplex

Das ließe sich mit einme REG Query-Aufruf und einem Find/Findstr-Filter auf den Displaynamen des NIC verhältnismäßig einfach ermitteln.

Ob die Werte identisch sind für alle moderneren Netzwerkkarten, kann ich allerdings nicht sagen, da meine Boards hier alle den NVIDIA- Kram besitzen.
Probiere es doch einfach mal aus.

Gruß
Bitte warten ..
Mitglied: 14634
04.04.2012 um 15:20 Uhr
hey, leider habe ich immer bisschen andere werte, da wir verschiedene NIC`s haben.

ich wollte das vbs Script mit psexec auf die anderen PC`S ausführen, nur leider bekomme ich da eine fehlermeldung das die Datei nicht gefunden war, mein Befehl hieß:

psexec -c -f \\PC_NAME start.vbs
Bitte warten ..
Mitglied: 106009
04.04.2012 um 15:49 Uhr
Das funktioniert so auch nicht.

Du musst die vollständigen Pfade zu den Dateien angeben, .vbs kannst du allein so auch nicht aufrufen, du musst es so versuchen:
01.
psexec -c -f %systemroot%\system32\wscript.exe LW:\Pfad\start.vbs
Nur als Anmerkung. Man sollte eine Datei, unabhängig von der Endung niemals nach einem im System vorhandenen Parameter oder einem Dateinamen verwenden.
Das führt garantiert irgendwann zu Problemen.
Bitte warten ..
Mitglied: 14634
05.04.2012 um 06:32 Uhr
Hey, danke für deine Antwort, leider bekomme ich folgenden Fehler:


c:\temp>psexec \\PC_Name -c -f %systemroot%\system32\wscript.exe x:\test.vbs

PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Error copying C:\Windows\system32\wscript.exe to remote system:
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

das X Laufwerk ist eine Netzlaufwerk.
Bitte warten ..
Mitglied: 106009
05.04.2012 um 07:41 Uhr
das X Laufwerk ist eine Netzlaufwerk.

Hast du dir die Erklärung zum Parameter -c bei psexec mal durchgelesen?

Wenn du wissen willst, ob das überhaupt funktioniert, starte mit psexec ohne zusätzliche Parameter eine Konsole auf dem Remote-Rechner und führe dein Script dort direkt aus.
Vorher natürlich dorthin kopieren.

Wenn du dort ohne dein Script
01.
wmic nic {index} > .\nicinfo.txt
ausführst, wirst du wahrscheinlich feststellen, wenn du dir die nicinfo.txt mit type anzeigen lässt, dass man zu Speed und MaxSpeed für die Interfacekarte keine Informationen bekommt.
Wahrscheinlich musst du den Befehl wmic nach einer kurzen Zeit durch STRG-PAUSE unterbrechen. WMIC reagiert da offenbar etwas unnormal.
Bitte warten ..
Ähnliche Inhalte
Windows Systemdateien
Windows 7 und 10 herunterfahren Knopf mit Script belegen (21)

Frage von c-o-o-p-e-r92 zum Thema Windows Systemdateien ...

Festplatten, SSD, Raid
gelöst Windows 7 Pro x64 Key aus einer (fast) kaputten HDD auslesen (7)

Frage von carbon1X zum Thema Festplatten, SSD, Raid ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (10)

Frage von meex87 zum Thema Batch & Shell ...

Backup
gelöst Backup-Script erweitern mit automatischer bereinigung (6)

Frage von DarkHercules zum Thema Backup ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (17)

Frage von Zockervogel zum Thema Router & Routing ...

Basic
Programmierung von Windows Programmen (8)

Frage von Ghost108 zum Thema Basic ...