nicki 10 Geschrieben 23. Februar 2004 Melden Teilen Geschrieben 23. Februar 2004 Hallo zusammen, ich habe ein kleines VB-Porgramm geschrieben, mit dem ich je nach Bedarf die TCP/IP Adressierung auf den Clients verändern kann. Nach dem Starten des VB-Programms soll auf dem Client eine bat-Datei gestartet werden, die dann eine reg-Datei anspricht und diese dann die TCP/IP Adresse ändert. (Den Quelltext habe ich angehängt) Das Programm liegt nicht auf dem Windows 2000 Server. Die bat Datei und die reg Datei liegen auf den Clients, die VB Datei auf meinen Lehrerrechner. Die bat Datei läßt sich jedoch nur auf dem Rechner ausführen auf dem das VB-Programm liegt. Brauche ich um dieses Problem zu beheben unbedingt einen Telnet? Wenn ja, wie mache ich das? Oder gibt es noch eine andere Lösung? Gruß Nicole Option Explicit Dim speichern_ok As Boolean Public Sub Main() frmSplash.Show speichern_ok = False frm_internet.Show Unload frmSplash End Sub Private Sub cmd_info_Click(Index As Integer) frm_info.Show vbModal End Sub Private Sub cmd_schliessen_Click(Index As Integer) Dim shellpara As String Dim zähler As Integer zähler = 0 While zähler < 4 ' Inner loop. zähler = zähler + 1 ' Increment Counter. shellpara = Shell("\\S00" & zähler & "\c$\System16\proxyoff.bat", vbHide) If shellpara <= 0 Then MsgBox ("Fehler beim Trennen von Rechner S00" & zähler & " !") Wend ' While zähler < 34 ' Inner loop. ' zähler = zähler + 1 ' Increment Counter. ' shellpara = Shell("\\S0" & zähler & "\c$\System16\proxyoff.bat", vbHide) ' If shellpara <= 0 Then MsgBox ("Fehler beim Trennen von Rechner S0" & zähler & " !") ' wend Unload frm_internet End Sub Private Sub cmd_trennen_Click(Index As Integer) Dim shellpara As String shellpara = Shell("\\" & Clientliste.Text & "\c$\System16\proxyoff.bat", vbHide) If shellpara > 0 Then MsgBox ("Proxy wurde auf Rechner " & Clientliste.Text & " erfolgreich getrennt!") Else MsgBox ("Fragen Sie Ihren Systemadminstrator!") End If End Sub Private Sub cmd_verbinden_Click(Index As Integer) Dim shellpara As String shellpara = Shell("\\" & Clientliste.Text & "\c$\System16\proxy.bat", vbHide) If shellpara > 0 Then MsgBox ("Proxy wurde auf Rechner " & Clientliste.Text & " erfolgreich verbunden!") Else MsgBox ("Fragen Sie Ihren Systemadminstrator!") End If End Sub Private Sub TrennenAlle_Click() Dim shellpara As String Dim zähler As Integer zähler = 0 While zähler < 4 ' Inner loop. zähler = zähler + 1 ' Increment Counter. shellpara = Shell("\\S00" & zähler & "\c$\System16\proxyoff.bat", vbHide) If shellpara <= 0 Then MsgBox ("Fehler beim Trennen von Rechner S00" & zähler & " !") Wend ' While zähler < 34 ' Inner loop. ' zähler = zähler + 1 ' Increment Counter. ' shellpara = Shell("\\S0" & zähler & "\c$\System16\proxyoff.bat", vbHide) ' If shellpara <= 0 Then MsgBox ("Fehler beim Trennen von Rechner S0" & zähler & " !") ' wend End Sub Private Sub VerbindenAlle_Click() Dim shellpara As String Dim zähler As Integer zähler = 0 While zähler < 4 ' Inner loop. zähler = zähler + 1 ' Increment Counter. shellpara = Shell("\\S00" & zähler & "\c$\System16\proxy.bat", vbHide) If shellpara <= 0 Then MsgBox ("Fehler beim Trennen von Rechner S00" & zähler & " !") Wend ' While zähler < 34 ' Inner loop. ' zähler = zähler + 1 ' Increment Counter. ' shellpara = Shell("\\S0" & zähler & "\c$\System16\proxy.bat", vbHide) ' If shellpara <= 0 Then MsgBox ("Fehler beim Trennen von Rechner S0" & zähler & " !") ' wend End Sub Zitieren Link zu diesem Kommentar
Mr.Spock 10 Geschrieben 23. Februar 2004 Melden Teilen Geschrieben 23. Februar 2004 Hi nicki Wozu soll das gut sein? (IP-Aenderung) Zitieren Link zu diesem Kommentar
IvkovicD 10 Geschrieben 24. Februar 2004 Melden Teilen Geschrieben 24. Februar 2004 Hi nicki, ich benutze für solche Zwecke immer die Boardmittel der Rechner selber; in diesem Fall den Scheduler (den alten, nicht den Taskmanager, wobei das ja heute keinen SOOOO großen Unterschied ausmacht) An deiner Stelle würde ich die .bat Dateien auf jedem Rechner in das gleiche Verzeichnis legen und mittels "AT" den Start triggern. Das ganze klappt, wenn die Uhrzeiten zeihmlich genau sind, ansonsten musst du etwas mehr Zeit kalkulieren. Ok hier ein Beispiel Auf jeden Rechner hast du ein ausführbare Batch unter c:\winnt\system gespeichert, z.B. change_ip.cmd (oder .bat) Dann kannst du folgendes auf deinem Rechner ausführen: at \\REMOTE HH:MM c:\winnt\system\change_ip.cmd HH:MM ist die Zeit in ein paar Minuten, so dauert das ganze net so lange.... das kannst du ja in einer Batchdatei einfügen, so dass du mehrere Rechner erreichen kannst at \\REMOTE1 HH:MM c:\winnt\system\change_ip.cmd at \\REMOTE2 HH:MM c:\winnt\system\change_ip.cmd at \\REMOTE3 HH:MM c:\winnt\system\change_ip.cmd Oder noch einfacher, indem du die Zeit über die Kommandozeile übergibst... mittels AT \\REMOTE fragst du den Status ab... (REMOTE ist IP oder NetBIOS-NAME des Remoterechners...) Gruß Dejan Zitieren Link zu diesem Kommentar
nicki 10 Geschrieben 1. März 2004 Autor Melden Teilen Geschrieben 1. März 2004 Hallo nochmal, also das hat nicht funktioniert. Habt ihr eventuell noch eine Idee, wie ich das bewerkstelligen kann? Es handelt sich hierbei um einen Schulungsraum und ehe man sich versieht, sind die Schüler auch schon im Internet. Ich möchte vom Lehrerrechner den Internetzugang manuell zulassen und verbieten können. Gruß Nicole Zitieren Link zu diesem Kommentar
IvkovicD 10 Geschrieben 3. März 2004 Melden Teilen Geschrieben 3. März 2004 hallo nicole, proforma: den zugriff über den router (irgendein router wird ja existieren) zu steuern, wäre keine möglichkeit? btw was genau funktionierte nicht? gruß dejan Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 3. März 2004 Melden Teilen Geschrieben 3. März 2004 hi nicole, psexec von http://www.sysinternals.com stellt dir die Commandline des Zielrechners zur Verfügung. z.B. (SET /P C=Enter computer name: ) & C:\pstools\psexec.exe \\!C! IPConfig /ALL cu blub Zitieren Link zu diesem Kommentar
nicki 10 Geschrieben 9. März 2004 Autor Melden Teilen Geschrieben 9. März 2004 Hallo Blub, vielen Dank für deinen Tipp, ich hab es ausprobiert und es läuft prima. In Zukunft könenn die Schüler nur surfen, wenn der Lehrer es zu läßt. Gruß Nicki Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 10. März 2004 Melden Teilen Geschrieben 10. März 2004 Hallo Nicki, freut mich. Danke für das Feedback cu blub Zitieren Link zu diesem Kommentar
nicki 10 Geschrieben 22. März 2004 Autor Melden Teilen Geschrieben 22. März 2004 Hallo blub, ich habe mich da wohl zu früh gefreut. Ich bekomme folgende Meldung, wenn ich das Programm starte: "Proxy.bat exited on S001 with error code 0" Der entscheidende Programmtext lautet: c:\psexec.exe \\S002 c:\Proxy.bat Warum läßt sich das Programm nicht starten????? Gruß Nicki Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 23. März 2004 Melden Teilen Geschrieben 23. März 2004 Hi Nicki, Vielleicht fehlende Rechte? Du kannst mit psexec -u -p Username und Passwort mitgeben. Versuchs doch mal mit einem lokalen Adminaccount. Andererseits bedeutet vermutlich "error code 0" : alles paletti cu blub Zitieren Link zu diesem Kommentar
nicki 10 Geschrieben 25. März 2004 Autor Melden Teilen Geschrieben 25. März 2004 Hallo blub, ich kann auch auf den Client zugreifen, indem ich psexec.exe \\S002 -s cmd eingebe. Ich kann mir dann auch alles auf dem Client ansehen, nur Datein werden nicht ausgeführt. Ich habe da verschiedene *.exe bzw. *.bat Dateien ausprobiert. Ich erhalte hier auch kleine Fehlermeldung. Gruß Nicole Zitieren Link zu diesem Kommentar
nicki 10 Geschrieben 28. März 2004 Autor Melden Teilen Geschrieben 28. März 2004 Hallo blub also die bat Datei kann ich nun aufrufen psexec.exe \\S002 -s -i -d \proxy.bat Aber ich habe nun folgendes Problem. Wenn ich die bat Datei lokal auf dem Rechner aufrufe, arbeitet diese eine reg Datei ab, in der der neue Registry Eintrag steht. Der Restistry Eintrag wird korrekt geändert. Auch wenn ich die bat Datei ferngesteuert aufrufe, wird die bat Datei auf dem Client geöffnet und "anscheinend" die reg Datei ausgeführt, nur eine Änderung des Registry Eintrags erfolgt nicht. Wiedo diese beiden unterscheidlichen Funktionsweisen, obwohl doch eigentlich das Gleiche durchgeführt wird???? Gruß Nicki Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 28. März 2004 Melden Teilen Geschrieben 28. März 2004 Hi Nicki, das psexec rufs du mit -s auf, d.h. unter dem Systemaccount. Hat denn "System" genügend Rechte in dem RegistryKey? PS: Ich arbeite mittlerweile lieber direkt mit dem "reg add" Befehl, als mit *.reg Dateien. Das ist direkter und flexibler. cu blub Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.