vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB Skript (VBS)
Re: Liste von Computern anpingen 
Autor: ~~~dexter~~~
Datum: 21.11.08 22:06

@sm5610

So liest Du eine zeilenweise eine Datei aus. Die zurückgebene Zeichenfolge wird dann an die Funktion Ping übergeben. Damit ich Zugriff auf den Ausgabestrom des Ping-Befehls erhalte, benutze ich die Exec-Methode des WshShell-Objekts.

Option Explicit                         'Erzwingt Variablendeklaration
 
'--- Variablen- und Konstantendeklaration
Const ForReading = 1                    'E/A-Modus, Datei zum Lesen öffnen
Const PCFILEPATH = "computer.txt"       'Pfad zur Computerliste
Dim FSO                                 'Dateisystemobjekt
Dim PCFile                              'Dateiobjekt
 
' Objektverweis einer Variable zuweisen
Set FSO = CreateObject("Scripting.FileSystemObject")
 
' Überprüfen, ob die Datei vorhanden ist
If FSO.FileExists(PCFILEPATH) Then
 
  ' Datei zum Lesen öffnen
  Set PCFile = FSO.OpenTextFile(PCFILEPATH, ForReading)
 
  ' Datei bis zum Ende durchlaufen  
  Do Until PCFile.AtEndOfStream
 
    ' Liest die Zeile, übergibt die zeichenfolge an die Funktion 'Ping( _
      Computer)' und gibt das Ergebnis aus
    WScript.echo Ping(PCFile.ReadLine)
 
  Loop
 
  'Datei schliessen
  PCFile.Close
 
Else
  WScript.Echo "FEHLER: '" & PCFILEPATh & "' wurde nicht gefunden!"
End If
 
Function Ping(ByVal Computer)
  Dim WshShell                          'WshShellObjekt
  Dim ExecObject                        'externes Program
  Dim StreamOut                         'Ausgabestrom
  Dim returnValue                       'Rückgabewert
 
  Set WshShell = CreateObject("WScript.Shell")
 
  ' Befehl Ping mit Zugriff auf Datenstrom ausführen
  Set ExecObject = WshShell.Exec("ping -n 1 -w 100 " & Computer)
 
  ' Alle Zeichen aus dem Datenstrom lesen
  StreamOut = ExecObject.StdOut.ReadAll()
 
  ' Ausgabestrom auswerten
  If Instr(LCase(StreamOut), "antwort") > 0 Then
    returnValue =  "'" & Computer & "' ist erreichbar!"
  Else
    returnValue =  "'" & Computer & "' ist NICHT erreichbar!"
  End If
 
  ' Funktionsrückgabewert
  Ping = returnValue
End Function
Die WMI-Klasse 'Win32_PerfFormattedData_PerfOS_System' besitzt die Eigenschaft 'SystemUpTime'. Sie enthält die Gesamtzeit (in Sekunden), die der Computer seit dem letzten Start in Betrieb war. Du kannst natürlich die Eigenschaft nicht abfragen, wenn der Rechner heruntergefahren ist. An Deiner Stelle würde ich es mit Hilfe von StartUp- und ShutDown-Skripte lösen. Beim Starten des Rechners bzw. beim Herunterfahren schreibst Du in eine Textdatei, die in einer beliebiger Freigabe liegt. Zur besseren Auswertung würde ich das CSV-Format benutzen.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Liste von Computern anpingen5.308sm561019.11.08 10:24
Re: Liste von Computern anpingen3.851~~~dexter~~~21.11.08 22:06
Re: Liste von Computern anpingen3.665sm561024.11.08 10:16
Re: Liste von Computern anpingen3.757~~~dexter~~~24.11.08 21:13
Re: Liste von Computern anpingen3.769sm561025.11.08 08:40
Re: Liste von Computern anpingen3.795effeff17.12.08 10:16
Re: Liste von Computern anpingen3.692sm561017.12.08 10:37

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel