Gleiche IP-Adressen im Netz gefunden durch Script?
Geizhals » Forum » Programmierung » Gleiche IP-Adressen im Netz gefunden durch Script? (8 Beiträge, 698 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Gleiche IP-Adressen im Netz gefunden durch Script?
07.06.2011, 17:42:22
Gerade was ganz komisches entdeckt. Ich habe ein kleines Script laufen lassen im Netzwerk, um zu loggen welchen Rechner eingeschaltet ist. Das Script soll zeitgesteuert um 1:00 Nachts rennen.

Als Ausgangsbasis habe ich ein 'Template' verwendet, welches ich früher öfters verwendet habe um irgendwas auf eine ganze Reihe von Rechner zu machen. Es geht eine Textliste mit Rechnernamen durch, pingt jeden an ob er da ist, und führt irgendwas aus. Das ganze wird auch mitgelogged.

Jetzt habe ich das Teil 'Irgendwas machen' einfach leergelassen: es geht die Liste durch, pingt die Rechner an, und schreibt die Antwort in ein Logfile.

Nur: ich habe doppelte IP-Adressen:

07/06/2011 01:02:51	===============================================
07/06/2011 01:02:51	Starting on WS08-282 (48 in list)
07/06/2011 01:02:51	WS08-282 is reachable at IP 192.168.0.7
07/06/2011 01:03:07	===============================================
07/06/2011 01:03:07	Starting on WS08-287 (53 in list)
07/06/2011 01:03:07	WS08-287 is reachable at IP 192.168.0.7

(Der Rechnername ist basiert auf unsere Inventarnummern :-))

Das Script hat früher (Sprich: vorige Firma) immer perfekt funktioniert...

Jemand ein Idee woran es liegen könnte?

Das Script selber:

On Error Resume Next
.
.
.
'Ready! WOOHOO!!!


Edit: Script raus um den Thread besser lesbar zu machen.


Save the Earth... it's the only planet with chocolate.
Wir sollten die Fekter aus- oder einweisen...


Plonked: Danielcart
07.06.2011, 18:24 Uhr - Editiert von Ardjan, alte Version: hier
Antworten PM Alle Chronologisch
 
Melden nicht möglich
Gleiche IP-Adressen im Netz gefunden durch Script?
07.06.2011, 17:42:22
Gerade was ganz komisches entdeckt. Ich habe ein kleines Script laufen lassen im Netzwerk, um zu loggen welchen Rechner eingeschaltet ist. Das Script soll zeitgesteuert um 1:00 Nachts rennen.

Als Ausgangsbasis habe ich ein 'Template' verwendet, welches ich früher öfters verwendet habe um irgendwas auf eine ganze Reihe von Rechner zu machen. Es geht eine Textliste mit Rechnernamen durch, pingt jeden an ob er da ist, und führt irgendwas aus. Das ganze wird auch mitgelogged.

Jetzt habe ich das Teil 'Irgendwas machen' einfach leergelassen: es geht die Liste durch, pingt die Rechner an, und schreibt die Antwort in ein Logfile.

Nur: ich habe doppelte IP-Adressen:

07/06/2011 01:02:51	===============================================
07/06/2011 01:02:51	Starting on WS08-282 (48 in list)
07/06/2011 01:02:51	WS08-282 is reachable at IP 192.168.0.7
07/06/2011 01:03:07	===============================================
07/06/2011 01:03:07	Starting on WS08-287 (53 in list)
07/06/2011 01:03:07	WS08-287 is reachable at IP 192.168.0.7

(Der Rechnername ist basiert auf unsere Inventarnummern :-))

Das Script hat früher (Sprich: vorige Firma) immer perfekt funktioniert...

Jemand ein Idee woran es liegen könnte?

Das Script selber:

On Error Resume Next

Set oWshNet = CreateObject("Wscript.Network") 

'Variables
strTimeDate = YEAR(Now) & Right("0" & Month(Now),2) & Right("0" & DAY(Now),2) & "-" & Right("0" & Hour(Now),2) & Right("0" & Minute(Now),2) & Right("0" & Second(Now),2)

infile = "computers.txt"

outFile = "Log_" & inFile & "-" & strTimeDate & ".txt"
Set objFSO = CreateObject("scripting.filesystemobject")

intCounter = 1

Const HKLM = &H80000002 
sProfileRegBase = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" 


'We want to have a logfile. When ready, it will rot on the disk for all eternity.
Set outFile = objFSO.OpenTextFile(outFile, 2, True)
outFile.writeline (Now & vbTab & "Starting script...")

'Loop through all servers listed in the inFile
Set inFile = objFSO.OpenTextFile(inFile, 1, True) 'Open the list of serevers to work on

While Not inFile.AtEndOfStream
	'Do Stuff
	strServer = inFile.ReadLine

	outFile.WriteLine Now & vbtab & "===============================================" 'Let's have a nice looking logfile. At least try to.
	outFile.WriteLine Now & vbtab & "Starting on " & strServer & " (#" & intCounter & " in list)"

	'Check if server reachable
	Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & strServer & "'")
	For Each objStatus in objPing
		If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
			outFile.WriteLine Now & VBTab & "***Error*** " & strServer & " is not reachable at IP " & objStatus.ProtocolAddress
		Else
			outFile.WriteLine  Now & VBTab & strServer & " is reachable at IP "& objStatus.ProtocolAddress

			'Connect to server
			Set objWMIService = GetObject("winmgmts:\\" & strServer & "\root\cimv2")
			If Err <> 0 Then
				outFile.WriteLine Now & VBTab & strServer & "***Error*** System unreachable: GetObject failed"
				Err.Clear
			Else
			
				'*********************************************
				'*
				'*   Put the actions here
				'*
				'*   Writing to Log: outFile.WriteLine Now & VBTab & "Message to Write"
				'
				'*   Variables:
				'*   strServer = Current server, without slashes, just the s-loc-wi-000
				'*

				'Set oWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strServer & "\root\cimv2")
				Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
				For Each oOS in colOS
					sLastBoot = oOS.LastBootUpTime
					sSec = DateDiff("s",UTCtoStandard(sLastBoot), Now)
				Next
			        sMin = sSec\60
			        sSec = sSec Mod 60
			        sHour = sMin\60
			        sMin = sMin Mod 60
			        sDay = sHour\24 
				outFile.WriteLine Now & VBTab & "Uptime= (" & sDay & ")" & " Days, " & sHour Mod 24 & " Hours, " & sMin &" Minutes, " & sSec & " Seconds"


				'*********************************************

				outfile.WriteLine Now & vbtab & "Ready with " & strServer
			End If
		End If

		intCounter = intCounter + 1

	Next
	wscript.sleep 5000
Wend

'Aufräumen
outFile.WriteLine Now & vbtab & "==============================================="
outFile.writeline Now & vbTab & "Ending script..."
inFile.close
outFile.close

MsgBox "Script completed successfully."

WScript.Quit

'Ready! WOOHOO!!!



Save the Earth... it's the only planet with chocolate.
Wir sollten die Fekter aus- oder einweisen...


Plonked: Danielcart
[ Dieser Beitrag wurde inzwischen editiert. Die aktuelle Version befindet sich hier. ]
Antworten PM Alle Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung