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, 6157 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 ..
Ähnliche Inhalte
VB for Applications
gelöst VB-Script per Aufgabenplanung (2)

Frage von S4kar97 zum Thema VB for Applications ...

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

Frage von LindeUnimog zum Thema Outlook & Mail ...

Router & Routing
gelöst Mikrotik Router in Netzwerk einbinden (3)

Frage von Cyberurmel zum Thema Router & Routing ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...