noiredv
Goto Top

VBS Proxyserver auslesen Netzwerkweit

Hallo,

ich habe mich damit jetzt schon ein paar Tagelang mit beschäftigt und komme immer noch nicht auf keinen grünen Zweig.

Und zwar habe ich die Aufgabe rauszufinden, auf welchem Rechner wecher Proxy eingetragen ist.

Und ich habe das unten Beschriebene VB-Script dazu geschrieben, nur es stimmt überhaupt nicht was das Script ausgibt weiß einer wieso oder warum? Also meine vermutung ist das es nur die Locale Maschine ausließt.

Bitte ich brauch dringend Hilfe.


hier das Script:

On Error Resume Next



'Ping Funktion  
Function Ping(strHost)
    Dim oPing, oRetStatus, bReturn
    Set oPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address='" & strHost & "'")  
 
   For Each oRetStatus In oPing
       If IsNull(oRetStatus.StatusCode) Or oRetStatus.StatusCode <> 0 Then
           bReturn = False
 
          '  ' WScript.Echo "Status code is " & oRetStatus.StatusCode  
       Else
           bReturn = True
 
          '  ' Wscript.Echo "Bytes = " & vbTab & oRetStatus.BufferSize  
          '  ' Wscript.Echo "Time (ms) = " & vbTab & oRetStatus.ResponseTime  
          '  ' Wscript.Echo "TTL (s) = " & vbTab & oRetStatus.ResponseTimeToLive  
        End If
        Set oRetStatus = Nothing
   Next
    Set oPing = Nothing
 
    Ping = bReturn
End Function
'Ende Ping Funktion  



'Einleitung  
'Servertextdatei vollständing mit Pfad und Dateinamen angeben  
Inputfile = Inputbox("Bitte Geben Sie den Pfad und den Namen der Servertextdatei ein")  
'Hier nur den Pfad des Ordners Angeben  
Outputfile = Inputbox("Bitte geben Sie den Ordner Pfad ein wo Sie Ihr Ergebnis haben wollen")   
'Einleitung Ende  



'Hauptscript Anfang  
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Set oFS = CreateObject("Scripting.FileSystemObject")  
Set fi = oFS.OpenTextFile(Inputfile)
Set fa = oFS.CreateTextFile(Outputfile & "\Output.txt")  
Set fu = ofs.OpenTextFile(Outputfile & "\Output.txt")  
Set fr = oFS.CreateTextFile(Outputfile & "\Registryeintrag.txt")  
Set fe = oFS.CreateTextFile(Outputfile & "\Nicht_Erreicht.txt")  



'Computer anpingen und aussortieren  
Do Until fi.AtEndOfStream
  	sComputer = fi.ReadLine
	
IF Ping(sComputer) then
	
	fa.Writeline(sComputer)
	
else

	fe.Writeline(sComputer & ";nicht erreicht")  
	
end if

Loop
fi.close
fa.close
'Ende Computer anpingen  



'Anfang Dienste auslesen und schreiben  
Computers = fu.ReadAll
fu.Close
oFS.deletefile(Outputfile & "\Output.txt")  
arrComputers = Split(Computers,  vbCrLf)

fr.WriteLine("Computer" & ";" & "Proxyserver")  

For Each strComputer in arrComputers

	Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _  
    strComputer & "\root\default:StdRegProv")  
 

 
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings"  
strValueName = "ProxyServer"  
oReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue


	
	


	fr.WriteLine(strComputer & ";" & strValue)  
'Ende Dienste auslesen und schreiben  



	Next
	


MsgBox "Fertig!!", 0, "Info"  
'Hauptscript Ende  

Content-ID: 147214

Url: https://administrator.de/contentid/147214

Ausgedruckt am: 26.11.2024 um 09:11 Uhr

77559
77559 20.07.2010 um 13:04:38 Uhr
Goto Top
Hallo NoirEDV,

die EDV ist wirklich tiefschwarz wenn ich mir deinen Code anschaue face-wink

  • Bitte schließe deinen Code zur besseren Les-/Referenzierbarkeit unbedingt in die dafür vorgesehenen "<code>"- und "</code>"-Tags ein.
(siehe auch: in der Formatierungshilfe)
  • Variablenprobleme siehst du nicht, wenn du nicht Option explicit und entsprechende Dims benutzt.
  • Fehler auffinden kannst du auch nicht, wenn du die gleich mit On Error Resume Next weg bügelst.
  • Sprechende Variablennamen helfen Anderen deinen Cde zu verstehen, fa fi fu mag ja für einen Kinderreim passen, aber hier nicht.

Gruß
LotPings
NoirEDV
NoirEDV 20.07.2010 um 16:24:46 Uhr
Goto Top
Hab des erstmal anders Formatiert. Danke für den Tipp face-smile

Rest muss ich Morgen erstmal ausprobieren. Eins weiß ich auch wenn ich "On Error Resume Next" weg lasse bringt er mir auch kein Fehler.
77559
77559 20.07.2010 um 17:37:52 Uhr
Goto Top
Hallo NoirEDV,

hier sind einige Registry Scripte mit denen du unter Anderem prüfen kannst, ob du Zugriffsrechte hast.

Gruß
LotPings
NoirEDV
NoirEDV 21.07.2010 um 09:33:15 Uhr
Goto Top
Hmm die Scripts funktionieren bei mir überhaupt nicht...also geben immer ne Fehlermeldung aus.

Also nochmal zur Problembeschreibung mein User selber ist Domänenadministrator und alle Rechner sind in der Domäne.
Und wenn ich das oben beschriebene Script durchlaufen lasse, arbeitet es auch. Nur das es mir bei sehr wenigen Rechnern wirklich den Proxy eintrag zurückgibt.
Biber
Biber 21.07.2010 um 09:51:03 Uhr
Goto Top
Moin NoirEDV,

Zitat von @NoirEDV:
Hmm die Scripts funktionieren bei mir überhaupt nicht...
Das ist ja mal eine klare Aussage.
Und wenn ich das oben beschriebene Script durchlaufen lasse, arbeitet es auch.
Genau wie diese Aussage auch.
also geben immer ne Fehlermeldung aus.
Lass es uns doch ein klitzekleines Bisschen eingrenzen.
Ist es
o eine kursiv geschriebene Fehlermeldung?
o eine deutsch klingende ?
o eine irgendwie ausländisch anmutende?
o würde sich die denn per Copy & Paste in dieses Forum transferieren lassen?
o oder könntest du die Meldung mit deinem iPhone abfotografieren, bei YouTube einstellen und den Link posten?
Magst du mal das/die Zutreffende(n) ankreuzen bitte?

Nur das es mir bei sehr wenigen Rechnern wirklich den Proxy eintrag zurückgibt.
Und du hältst LotPings' Hinweis auf fehlende Remote-Registry-Rechte für vollkommen ignorierenswert?

Grüße
Biber
NoirEDV
NoirEDV 21.07.2010 um 10:15:13 Uhr
Goto Top
Zitat von @Biber:
Moin NoirEDV,

> Zitat von @NoirEDV:
> ----
> Hmm die Scripts funktionieren bei mir überhaupt nicht...
Das ist ja mal eine klare Aussage.
> Und wenn ich das oben beschriebene Script durchlaufen lasse, arbeitet es auch.
Genau wie diese Aussage auch.
> also geben immer ne Fehlermeldung aus.
Lass es uns doch ein klitzekleines Bisschen eingrenzen.
Ist es
o eine kursiv geschriebene Fehlermeldung?
o eine deutsch klingende ?
o eine irgendwie ausländisch anmutende?
o würde sich die denn per Copy & Paste in dieses Forum transferieren lassen?
o oder könntest du die Meldung mit deinem iPhone abfotografieren, bei YouTube einstellen und den Link posten?
Magst du mal das/die Zutreffende(n) ankreuzen bitte?

Bei dem Link wo mir LotPings gegeben hat. Die beiden Scripts "Checking Registry Key Access Rights"
Kommt der selbe Fehler:

Zeile: 21
Zeichen: 5 (StdOut.WriteLine "Have Query Value Access Rights on Key")
Fehler: Das Handle ist ungültig.
Code: 80070006
Quelle: (null)


> Nur das es mir bei sehr wenigen Rechnern wirklich den Proxy eintrag zurückgibt.
Und du hältst LotPings' Hinweis auf fehlende Remote-Registry-Rechte für vollkommen ignorierenswert?

Grüße
Biber

Und nein ich halte das für sehr wahrscheinlich ich wüsste aber nicht wie ich das beheben könnte.
77559
77559 21.07.2010 um 10:59:17 Uhr
Goto Top
Zitat von @NoirEDV:
Bei dem Link wo mir LotPings gegeben hat. Die beiden Scripts "Checking Registry Key Access Rights"
Kommt der selbe Fehler:
Gut das wir hier keine Noten für die BenutzungVerhunzung der Deutschen Sprache geben face-wink

Zeile: 21
Zeichen: 5 (StdOut.WriteLine "Have Query Value Access Rights on Key")
Fehler: Das Handle ist ungültig.
Code: 80070006
Quelle: (null)

Versuche mal das Script mit Cscript aus einem CMD Fenster zu starten.

Und nein ich halte das für sehr wahrscheinlich ich wüsste aber nicht wie ich das beheben könnte.
Erst feststellen wo der Fehler liegt, dann ...

Gruß
LotPings
Biber
Biber 21.07.2010 um 11:09:26 Uhr
Goto Top
[OT]
Moin Lordchen,
Zitat von @77559:
Gut das wir hier keine Noten für die BenutzungVerhunzung der Deutschen Sprache geben face-wink
Oh doch!. Vergeben wir.
Meine aktuelle Zwischensumme aller Noten liegt bei 4.098.679 ...

Aber das ist ja nicht das einzige, was ich vergebe...

Grüße
Biber
[/OT]
NoirEDV
NoirEDV 21.07.2010 um 12:26:13 Uhr
Goto Top

Versuche mal das Script mit Cscript aus einem CMD Fenster zu starten.


Sry ich hab keine Ahnung was du meinst ;)
Biber
Biber 21.07.2010 um 12:39:42 Uhr
Goto Top
Moin Schwatter,

Dat Lordchen meint:

  • öffne eine "Eingabe-Aufferderung mit "Ausführen"-> eintippseln 'cmd' + ENTER
  • gibt dort ein
cscript //nologo p:\fadzurFiFaFu.vbs\nameDerFiFafu.vbs

Poste das Ergebnis (die Bildschirmausgabe).
Dazu den Bildschirm mit dem Glas nach nach unten auf den Kopierer oder das Faxgerät legen..

Grüße
Biber
NoirEDV
NoirEDV 21.07.2010 um 13:09:08 Uhr
Goto Top
Danke und hier das Ergebniss:

Have Query Value Access Rights on Key
Have Set Value Access Rights on Key
Have Create Subkey Access Rights on Key
Have Delete Access Rights on Key

Und hab noch nebenher was getestet.
Habe mein Script mal auf einen anderen Rechner mit einem anderen User laufen lassen.

Jetzt bekomme ich ca. 50 % der Rechner mit einem Proxyeintrag zurück, aber was ich als Ergebnis an einem Rechner bekomme stimmt manchmal nicht, also es ist nicht der Wert der eigentlich in der Registry drin steht.


Gruß
Noir

Edit 28.07.2010

Das ganze ist immer noch Aktuell hat keiner irgendwie eine Lösung parat?