Top-Themen

Aktuelle Themen (A bis Z)

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 LAN -Status mit vbs überprüfung (Server - Client)

Mitglied: Silencer1982

Silencer1982 (Level 1) - Jetzt verbinden

08.02.2008, aktualisiert 19.02.2008, 8453 Aufrufe, 9 Kommentare

Hallo,
möchte gerne einen Script schreiben der mir anzeigt ab wann mein Server im Lan verfügbar ist.

Der Hintergrund ist , da ich meinen Server beim einschalten meines Pc´s über Wake on Lan wecke - möchte ich gerne eine Grafische Meldung ab wann er dann auch erreichbar ist ( bezw. hochgefahren ist) .

Leider bin ich noch Anfänger im bereich VBs .
Wie könnte so ein script aussehen?
Mitglied: Tunerus
08.02.2008 um 13:06 Uhr
Ich hab leider gerade meine Unterlagen nicht hier aber vorab schon mal ein kleiner tipp:

Nimm ein Shellobjekt mit dem Du einen Ping absendest an den Server. Die Ping.exe liefert einen Rückgabewert zurück welchen Du prüfst ob er einen bestimmten Status hat. Wenn dieser stimmt eine Messagebox erscheinen lassen ansonsten die Überprüfung nochmal laufen lassen.

Heute Abend kann ich Beispielcode liefern.
Bitte warten ..
Mitglied: SvenGuenter
08.02.2008 um 17:52 Uhr
Hi hier eine mögliche Lösung

01.
Option Explicit 
02.
 
03.
 
04.
 
05.
Private Type WSAdata 
06.
   wVersion As Integer 
07.
   wHighVersion As Integer 
08.
   szDescription(0 To 255) As Byte 
09.
   szSystemStatus(0 To 128) As Byte 
10.
   iMaxSockets As Integer 
11.
   iMaxUdpDg As Integer 
12.
   lpVendorInfo As Long 
13.
End Type 
14.
 
15.
Private Type Hostent 
16.
   h_name As Long 
17.
   h_aliases As Long 
18.
   h_addrtype As Integer 
19.
   h_length As Integer 
20.
   h_addr_list As Long 
21.
End Type 
22.
 
23.
Private Type IP_OPTION_INFORMATION 
24.
   TTL As Byte 
25.
   Tos As Byte 
26.
   Flags As Byte 
27.
   OptionsSize As Long 
28.
   OptionsData As String * 128 
29.
End Type 
30.
 
31.
Private Type IP_ECHO_REPLY 
32.
   Address(0 To 3) As Byte 
33.
   Status As Long 
34.
   RoundTripTime As Long 
35.
   DataSize As Integer 
36.
   Reserved As Integer 
37.
   data As Long 
38.
   Options As IP_OPTION_INFORMATION 
39.
End Type 
40.
 
41.
Private Declare Function GetHostByName Lib "wsock32.dll" Alias "gethostbyname" (ByVal Hostname As String) As Long 
42.
Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequired&, lpWSAdata As WSAdata) As Long 
43.
Private Declare Function WSACleanup Lib "wsock32.dll" () As Long 
44.
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long) 
45.
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long 
46.
Private Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As Boolean 
47.
Private Declare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, ByVal DestAddress As Long, ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP_OPTION_INFORMATION, ReplyBuffer As IP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Boolean 
48.
 
49.
Private Const SOCKET_ERROR = 0 
50.
 
51.
'Server ist die URL die Funktion liefert eine 1 wenn ping durchkommt und eine 0 wenn er nicht 
52.
'erreichbar ist 
53.
Public Function Ping(ByVal Server As String) As Long 
54.
 
55.
   Dim hFile As Long, lpWSAdata As WSAdata 
56.
   Dim hHostent As Hostent, AddrList As Long 
57.
   Dim Address As Long, rIP As String 
58.
   Dim OptInfo As IP_OPTION_INFORMATION 
59.
   Dim EchoReply As IP_ECHO_REPLY 
60.
   Dim Hostname As String 
61.
 
62.
 
63.
   Ping = 0 'Rückgabe anfangs auf null setzen 
64.
   If Left(Server, 7) = "http://" Then Server = Mid(Server, 8) 'http:// entfernen 
65.
 
66.
   Call WSAStartup(&H101, lpWSAdata) 
67.
 
68.
   If GetHostByName(Server + String(64 - Len(Server), 0)) <> SOCKET_ERROR Then 
69.
      CopyMemory hHostent.h_name, ByVal GetHostByName(Server + String(64 - Len(Server), 0)), Len(hHostent) 
70.
      CopyMemory AddrList, ByVal hHostent.h_addr_list, 4 
71.
      CopyMemory Address, ByVal AddrList, 4 
72.
   End If 
73.
 
74.
   hFile = IcmpCreateFile() 
75.
   If hFile = 0 Then Exit Function 'Bei Fehler abbrechen 
76.
 
77.
   OptInfo.TTL = 128 
78.
 
79.
   'Ping senden 
80.
   If IcmpSendEcho(hFile, Address, String(32, "A"), 32, OptInfo, EchoReply, Len(EchoReply) + 8, 2000) Then 
81.
      rIP = CStr(EchoReply.Address(0)) + "." + CStr(EchoReply.Address(1)) + "." + CStr(EchoReply.Address(2)) + "." + CStr(EchoReply.Address(3)) 
82.
   Else 
83.
      'Fehler aufgetreten 
84.
 
85.
      Exit Function 
86.
   End If 
87.
 
88.
   If EchoReply.Status = 0 Then 
89.
   
90.
      Ping = 1 
91.
   Else 
92.
  
93.
      Ping = 0 
94.
   End If 
95.
    
96.
End Function 
97.
 
98.
 
Bitte warten ..
Mitglied: 60730
08.02.2008 um 17:53 Uhr
moin,

die Idee mit dem Ping "bringt" nicht wirklich viel, denn die Netzwerkkarte antwortet schon kurz nach dem Starten, zu dem Zeitpunkt muß SMB oder was auch immer, der Server "serviert" noch garnicht laufen...

Was willst Du denn überprüfen?

Wenn sowas wie Netzwerklaufwerke, dann evtl. so:

Achtung, kein VBS - nur eine .cmd /bat

:start
net use z: \\servername\c$
if exist z:\>nul goto ready
goto start
:ready
echo time/t
echo Server aktiv
net use z: /delete
pause
Bitte warten ..
Mitglied: Tunerus
08.02.2008 um 17:56 Uhr
So ich hab grad mal kurz etwas zusammen gebastelt und natürlich könnte man es noch verbessern ;)

01.
sComputername = "localhost" 'Hier den Servernamen eintragen 
02.
 
03.
Set oShell = WScript.CreateObject("WScript.Shell") 
04.
iErgebnis = oShell.Run("ping.exe -n 1 " & sComputername, 0, true) 
05.
 
06.
Do while (iErgebnis <> 0) 
07.
	Wscript.Sleep(1000) 
08.
	iErgebnis = oShell.Run("ping.exe -n 1 " & sComputername, , true) 
09.
Loop 
10.
	MsgBox "Computer ist online.", vbInformation, "Hinweis"
Ich hoffe es hilft Dir!
Bitte warten ..
Mitglied: SvenGuenter
08.02.2008 um 17:56 Uhr
Du kannst in dem Ping einen Delay einbauen damit du sicher bist das der Server wenn er denn oben ist auch erreichbar ist ;o)
Bitte warten ..
Mitglied: bastla
09.02.2008 um 23:21 Uhr
Hallo Silencer1982!

Wenn das Script auf einem System (solltest Du beim nächsten Mal angeben) ab XP ausgeführt wird, kannst Du (nach einer hier zu findenden Vorlage) auch eine Lösung ohne den CMD-Ping-Befehl verwenden:
01.
Server = "Servername" 'oder auch IP 
02.
 
03.
Start = Now 
04.
Do Until Ping(Server) 
05.
	WScript.Sleep 1000 
06.
Loop 
07.
Ende = Now 
08.
 
09.
WScript.Echo "Script gestartet um:    " & Start & vbCrLF & _ 
10.
	"Server erreichbar um: " & Ende & vbCrLF & vbCrLF & _ 
11.
	"Dauer: " & DateDiff("s", Start, Ende) & " Sekunden" 
12.
 
13.
 
14.
Function Ping(machine) 
15.
PingResult = True 
16.
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._ 
17.
	ExecQuery("select * from Win32_PingStatus where address = '"_ 
18.
	& machine & "'") 
19.
For Each objStatus in objPing 
20.
	If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then  
21.
		PingResult = False 
22.
	End If 
23.
Next 
24.
Ping = PingResult 
25.
End Function
@SvenGuenter: Dein Code passt nicht so wirklich unter die Überschrift VBS ...

Grüße
bastla
Bitte warten ..
Mitglied: Silencer1982
11.02.2008 um 10:03 Uhr
xp- klar das habe ich vergessen.
danke nochmal
Gruß Silencer1982
Bitte warten ..
Mitglied: 60730
11.02.2008 um 10:51 Uhr
Der Hintergrund ist , da ich meinen Server
beim einschalten meines Pc´s über
Wake on Lan wecke - möchte ich gerne
eine Grafische Meldung ab wann er dann auch
erreichbar ist ( bezw. hochgefahren ist) .

Moin,

eure Ideen sind ja alle nicht schlecht, aber wie ich bereits geschrieben habe (und jetzt mal ausführlicher beschreibe) - an der Situation, dass der NIC bereits kurz (bei mir 5 sec.) nach dem WOL auf Pings antwortet, und NICHT der Server ändert sich immer noch nichts ;-(

Um den "Serverstatus" selber herauszufinden, reicht also kein "Ping" - denn wie oben beschrieben, darauf antwortet bereits der NIC, während des bootens.

(WOL ist ja auch dafür gedacht, Betriebsysteme per RIS zu installieren, also "muß" nicht zwingend ein OS laufen, um die "Maschenka" anpingen zu können)

@SilenceR - nochmal die Frage, was für Dienste willst du abfragen?
Bitte warten ..
Mitglied: Silencer1982
19.02.2008 um 14:29 Uhr
Also erstmal danke an alle!!!

Im grunde genommen soll mir das Script nur sagen das der Server aufgeweckt wurde.
Bitte warten ..
Ähnliche Inhalte
Entwicklung
Batch - Überprüfung
gelöst Frage von apex.predator24Entwicklung6 Kommentare

Hallo Zusammen Gibt es eine Möglichkeit, einen Prozess im TaskManager über eine Batch-Datei zu überprüfen ob dieser läuft oder ...

Batch & Shell
Passwort überprüfung
Frage von Robin99Batch & Shell4 Kommentare

Hallo, ich bin am ende ich weiß nicht was hier falsch ist: Kann mir da jmd. weiterhelfen? Danke :D ...

Microsoft Office
Excel Wenn Überprüfungen
Frage von moritzhdMicrosoft Office

Hallo zusammen, ich habe folgendes Problem. Ich habe eine Liste von Daten, mit ArtikellNr., Lieferstatusen, Liefernummern (und weiteren Informationen, ...

Router & Routing
Zugriff aus dem LAN auf VPN Clients
Frage von sschultewolterRouter & Routing8 Kommentare

Hallo, ich hoffe es lässt sich soweit verständlich erklären. Gegeben ist ein LANCom Router (192.168.99.1). An diesem hängen über ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 2 TagenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 4 TagenHumor (lol)10 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 4 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 5 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
gelöst Frage von vanTastE-Mail32 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

Windows Server
Domäne beitreten nicht möglich, unter VMWare windows Server 2016 Core
Frage von AmanuelWindows Server21 Kommentare

Ich habe auf meinem Mac unter VMWare Windows Server 2016 Core und Windows Server 2016 Desktopversion installiert. Beide Systeme ...

Windows Server
Server verliert Dateien und Ordner
gelöst Frage von routeserverWindows Server18 Kommentare

Hallo Freunde, ich habe hier ein Problem, das mich an meine Grenzen treibt und ich würde gerne wissen, ob ...

Windows Tools
User Self Service und Client Management
Frage von OrkansonWindows Tools14 Kommentare

Hallo zusammen, ich hab ein paar verschiedene Fragen: 1. Was benutzt ihr um Software im Unternehmen zu verteilen? 2. ...