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
GELÖST

Mit VB Script Netzwerk Pingen

Frage Microsoft Windows Userverwaltung

Mitglied: Itfreak

Itfreak (Level 1) - Jetzt verbinden

18.03.2009, aktualisiert 13:44 Uhr, 6126 Aufrufe, 7 Kommentare

Salut Zusammen

Ich möchte in meinen netzwerk einen Hostanem Bereich pingen und dabei
alle Geräte die antworten in ein externes Dokument ausgeben.
Bis jetzt habe ich folgendes:
Kann mir jemand weiterhelfen?
Schon mal ein Dankeschön im voraus!


strMachines = "pr1;pr63"
aMachines = split(strMachines, ";")
Dim Fso ,f

For Each machine in aMachines
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address = '"_
& machine & "'")
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
WScript.Echo("Computer " & machine & " is not reachable")
Else
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fso =Fso.OpenTextFile("C:\hosts.txt")
f.WriteLine"Drucker ist Online"
Set f =fso.OpenTextFile("C:\hosts.txr")
End If
Next
Next
Mitglied: bastla
18.03.2009 um 16:49 Uhr
Hallo itfreak!

Ungetestet würde ich das etwa so machen:
01.
strMachines = "pr1;pr63" 
02.
 
03.
aMachines = split(strMachines, ";") 
04.
Set Fso = CreateObject("Scripting.FileSystemObject") 
05.
 
06.
For Each machine in aMachines 
07.
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._ 
08.
    ExecQuery("select * from Win32_PingStatus where address = '"_ 
09.
        & machine & "'") 
10.
    For Each objStatus in objPing 
11.
        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then 
12.
            WScript.Echo machine & " is not reachable" 
13.
        Else 
14.
            Fso.OpenTextFile("C:\hosts.txt",8,1).WriteLine machine & " ist Online" 
15.
        End If 
16.
    Next 
17.
Next
Grüße
bastla
Bitte warten ..
Mitglied: 76109
19.03.2009 um 10:19 Uhr
Zitat von bastla:
> Ungetestet würde ich das etwa so machen:

Hallo bastla,

bis auf den unnötigen Split, würde ich es fast genauso machen.

01.
aMachines = Array("pr1", "pr63")
Gruß Dieter

PS. Bei Vasili-VBS-CSV-Konvertierung steht am Ende ein aktuelles VBS
Bitte warten ..
Mitglied: bastla
19.03.2009 um 10:38 Uhr
@76109
bis auf den unnötigen Split ...
Je nach Anzahl der Geräte könntest Du die eine Zeile wieder hereinbringen, wenn Du nicht für jedes Gerät die Anführungszeichen eingeben musst ...
... würde ich es fast genauso machen.
Eigentlich würde ich ja auch nicht so (gemeint ist das Schreiben in der Schleife per "append") machen, sondern die Ausgabezeilen in einer Variable sammeln und dann in einem Rutsch in die Datei schreiben - die "append"-Version hat, dadurch dass sofort geschrieben wird, einen kleinen Sicherheitsvorteil.

Grüße
bastla

P.S.: Hab' momentan etwas wenig Zeit ...
Bitte warten ..
Mitglied: 76109
19.03.2009 um 11:35 Uhr
Hallo bastla

Zitat von bastla:
Je nach Anzahl Geräte

Könnte dann ja auch so gehen oder wie auch immer:

01.
aMachines = Array(WScript.Arguments(0),WScript.Arguments(1)........)
Alle Wege führen nach Rom oder so ähnlich.

in der Schleife per "append") machen

Keine Ahnung, habs nach dem gleichen Prinzip wie im Gruppen/Dupletten-Teil gemacht.

Zumal die Import-Datei für Gruppen/Dupletten laut Vasili in 3-4 Jahren bis zu 10 MB groß werden kann
und die Import-Datei für Gebutrtstage nur Daten für 30 Tage beinhaltet.

Aber da ich ja noch kein ADO-Profi bin, nehme ich selbsverständlich jeden Hinweis dankbar an.

Gruß Dieter
Bitte warten ..
Mitglied: bastla
19.03.2009 um 11:59 Uhr
Hallo didi1954!
Könnte dann ja auch so gehen oder wie auch immer:
01.
aMachines = Array(WScript.Arguments(0),WScript.Arguments(1)........)
Dann schon eher unten
01.
For i = 0 To WScript.Arguments.Count - 1 
02.
    machine = WScript.Arguments(i) 
03.
    ...
Gedacht hatte ich eher an eine größere Anzahl von Geräten, wo die Einsparung der Anführungszeichen (anstelle von 2 je Gerät nur 2 insgesamt) die zusätzliche "Split"-Zeile rechtfertigen könnte.
Die Frage des Rausschreibens hat übrigens mit ADO eigentlich nix zu tun ...

Grüße
bastla
Bitte warten ..
Mitglied: Itfreak
19.03.2009 um 21:07 Uhr
Moin Moin


Danke für eure tollen Antworten!
Habe aber noch eine kleine Frage
wie würdet ihr das am besten lösen wenn man
einen grösseren Wertebereich ab pingen müsste?
pc2-pc60?


gruess Itfreak
Bitte warten ..
Mitglied: bastla
19.03.2009 um 21:16 Uhr
Hallo itfreak!

Wenn es fortlaufend nummerierte "pc" sind, etwa so:
01.
Set Fso = CreateObject("Scripting.FileSystemObject") 
02.
 
03.
For i = 2 to 60 
04.
    machine = "pc" & i 
05.
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._ 
06.
    ExecQuery("select * from Win32_PingStatus where address = '"_ 
07.
        & machine & "'") 
08.
    For Each objStatus in objPing 
09.
        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then 
10.
            WScript.Echo machine & " is not reachable" 
11.
        Else 
12.
            Fso.OpenTextFile("C:\hosts.txt",8,1).WriteLine machine & " ist Online" 
13.
        End If 
14.
    Next 
15.
Next
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

Visual Studio
VB.Net Screenshot übers Netzwerk übertragen (1)

Frage von Aicher1998 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...