WMI-Remote-Steuerung der Windows-Firewall
Hallo,
ich habe folgendes Problem:
Ich soll die Remote-Steuerung von Windows-Firewalls in VBScript realisieren.
Laut [1] ist das gar nicht so ohne weiteres möglich. Das Firewall-Objekt kann nämlich nur lokal erstellt werden. Das bedeutet, dass ich das Script lokal ausführen lassen muss (die Systemlösung, für die ich die Scripts schreibe, lässt das sogar in Echtzeit zu). Lokal heißt aber eben auch, dass ich mir so richtig Gedanken machen muss, wie ich die Kommunikation zwischen Admin und Client regeln will - wie kann ich dem Admin das FW-Setup übermitteln, wenn doch das Script lokal beim Client läuft? Oder noch simpler: Wie kann ich dem Client-Script einen Port übermitteln, der geschlossen/geöffnet werden soll?
In [1] werden zwei Wege genannt: Zum einen über eine auf einem Server ausgelagerte Textfile. Und zum anderen über Win32_Process-Klassen.
Der erste Vorschlag ist intuitiv, das Admin-Script erstellt aufm Client eine Datei mit Anweisungen für das lokal ausgeführte Client-Script, welches dann seinerseits wieder eine Datei aufm Client erstellt und das Ergebnis da hinein schreibt. Ich kann keinen bestimmten Server festlegen, auf dem die logfiles gespeichert werden sollen, schließlich wird die Software, die ich hier skripte, verkauft - und weiß der Geier wie die Leute ihre Server so nennen ;) So sehe ich das.
Zu dem anderen Vorschlag wird leider überhaupt nichts weiter erzählt, aufgrund meiner diesbezüglichen Unwissenheit habe ich jetzt die Hoffnung, dass dieser Weg etwas einfacher sein könnte - hat jemand vllt einen Plan, wie ich da vorgehen könnte?
Gruß,
Thomas
[1] http://www.microsoft.com/technet/scriptcenter/resources/tales/sg1104.ms ...
Absatz 'Scripting the Windows Firewall'
ich habe folgendes Problem:
Ich soll die Remote-Steuerung von Windows-Firewalls in VBScript realisieren.
Laut [1] ist das gar nicht so ohne weiteres möglich. Das Firewall-Objekt kann nämlich nur lokal erstellt werden. Das bedeutet, dass ich das Script lokal ausführen lassen muss (die Systemlösung, für die ich die Scripts schreibe, lässt das sogar in Echtzeit zu). Lokal heißt aber eben auch, dass ich mir so richtig Gedanken machen muss, wie ich die Kommunikation zwischen Admin und Client regeln will - wie kann ich dem Admin das FW-Setup übermitteln, wenn doch das Script lokal beim Client läuft? Oder noch simpler: Wie kann ich dem Client-Script einen Port übermitteln, der geschlossen/geöffnet werden soll?
In [1] werden zwei Wege genannt: Zum einen über eine auf einem Server ausgelagerte Textfile. Und zum anderen über Win32_Process-Klassen.
Der erste Vorschlag ist intuitiv, das Admin-Script erstellt aufm Client eine Datei mit Anweisungen für das lokal ausgeführte Client-Script, welches dann seinerseits wieder eine Datei aufm Client erstellt und das Ergebnis da hinein schreibt. Ich kann keinen bestimmten Server festlegen, auf dem die logfiles gespeichert werden sollen, schließlich wird die Software, die ich hier skripte, verkauft - und weiß der Geier wie die Leute ihre Server so nennen ;) So sehe ich das.
Zu dem anderen Vorschlag wird leider überhaupt nichts weiter erzählt, aufgrund meiner diesbezüglichen Unwissenheit habe ich jetzt die Hoffnung, dass dieser Weg etwas einfacher sein könnte - hat jemand vllt einen Plan, wie ich da vorgehen könnte?
Gruß,
Thomas
[1] http://www.microsoft.com/technet/scriptcenter/resources/tales/sg1104.ms ...
Absatz 'Scripting the Windows Firewall'
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109829
Url: https://administrator.de/forum/wmi-remote-steuerung-der-windows-firewall-109829.html
Ausgedruckt am: 22.04.2025 um 01:04 Uhr
13 Kommentare
Neuester Kommentar
Hallo,
mach es Dir nicht unnötig kompliziert. Zwei Beispiele, um die Firewall ein bzw auszuschalten:
Wenn Du jetzt ein wenig tiefer gräbst und dir eine Batchdatei baust und das ganze mit psexec aus der sysinternals suite verbindest, kommt ein nettes Rezept heraus.
Du kannst aber auch gleich mit Gruppenrichtlinien und Standardprofilen / Domänenprofilen arbeiten, um deine Einstellungen für die Arbeitsplätze vorzunehmen.
Die dickgedruckten Wörter sollte vorerst zum Graben und Nachschlagen für Dich reichen
Gruß
Markus
EDIT: natürlich sind das oben nur BEISPIELE. Du kannst über netsh firewall auch Ausnahmen definieren... wollte ich nur noch schnell erwähnen.
mach es Dir nicht unnötig kompliziert. Zwei Beispiele, um die Firewall ein bzw auszuschalten:
netsh firewall set opmode mode = ENABLE
netsh firewall set opmode mode = DISABLE
Wenn Du jetzt ein wenig tiefer gräbst und dir eine Batchdatei baust und das ganze mit psexec aus der sysinternals suite verbindest, kommt ein nettes Rezept heraus.
Du kannst aber auch gleich mit Gruppenrichtlinien und Standardprofilen / Domänenprofilen arbeiten, um deine Einstellungen für die Arbeitsplätze vorzunehmen.
Die dickgedruckten Wörter sollte vorerst zum Graben und Nachschlagen für Dich reichen
Gruß
Markus
EDIT: natürlich sind das oben nur BEISPIELE. Du kannst über netsh firewall auch Ausnahmen definieren... wollte ich nur noch schnell erwähnen.
Hallo,
ja.
Batchdatei als Beispiel lokal ausführen (s.o.) Du hast gerade bewiesen, dass Du meinen Text nicht gelesen hast...
Firewall aktivieren.
oder Programmausnahme festlegen
oder Datenverkehr für TCP auf Port 80 erlauben:
Setz dich bitte mit dem Thema ein wenig auseinander. Verlange nicht, dass wir für Dich deine Arbeit machen
Start --> Ausführen --> netsh [ENTER]
Danach gibst Du ein "?" ein... der Rest ist selbsterklärend...
Gruß
Markus
ja.
Batchdatei als Beispiel lokal ausführen (s.o.) Du hast gerade bewiesen, dass Du meinen Text nicht gelesen hast...
Firewall aktivieren.
netsh firewall set opmode mode = ENABLE
oder Programmausnahme festlegen
netsh firewall set allowedprogram "C:\MyApp\MyApp.exe" MyApp ENABLE
oder Datenverkehr für TCP auf Port 80 erlauben:
netsh firewall set portopening TCP 80 MyWebPor
Setz dich bitte mit dem Thema ein wenig auseinander. Verlange nicht, dass wir für Dich deine Arbeit machen
Start --> Ausführen --> netsh [ENTER]
Danach gibst Du ein "?" ein... der Rest ist selbsterklärend...
Gruß
Markus
Hallo,
hatte glaube ich deine Frage nicht richtig verstanden.
Hier die Lösung:
Erläuterung:
Ändere strComputer und strCommand nach deinen Wünschen ab.
strCommand ist der Lagerort von dem Zielrechner aus gesehen.
Denke ich konnte Dir helfen...
Gruß
Markus
hatte glaube ich deine Frage nicht richtig verstanden.
Hier die Lösung:
'Script: RemoteProcess.vbs
'Aufruf von Kommandozeile über cscript <scriptname>
Option Explicit
Dim strCommand, objProcess, intProcessID, strComputer
strComputer = "DEINZIELCOMPUTER"
strCommand = "C:\firewallconfig.bat"
Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
objProcess.Create strCommand,null,null,intProcessID
WSCript.Quit
Erläuterung:
Ändere strComputer und strCommand nach deinen Wünschen ab.
strCommand ist der Lagerort von dem Zielrechner aus gesehen.
Denke ich konnte Dir helfen...
Gruß
Markus
Hi,
"Zugriff verweigert" liegt wahrscheinlich daran (vorausgesetzt, dass Du die beiden Werte korrekt abgeändert hast), dass Du keine (administrativen) Zugriffsrechte auf dem Remoterechner besitzt. (keine Domäneninfrastruktur? Kein Domänen-Admin?)
Abhilfe:
Füge einen Benutzer bei der Remotemaschine lokal hinzu, der den gleichen Anmeldenamen und das gleiche Passwort von dem Benutzer besitzt, der das Script auch lokal bei dir ausführt.
Falls das nicht funktioniert, müsste man noch einmal schauen.
Gruß
Markus
"Zugriff verweigert" liegt wahrscheinlich daran (vorausgesetzt, dass Du die beiden Werte korrekt abgeändert hast), dass Du keine (administrativen) Zugriffsrechte auf dem Remoterechner besitzt. (keine Domäneninfrastruktur? Kein Domänen-Admin?)
Abhilfe:
Füge einen Benutzer bei der Remotemaschine lokal hinzu, der den gleichen Anmeldenamen und das gleiche Passwort von dem Benutzer besitzt, der das Script auch lokal bei dir ausführt.
Falls das nicht funktioniert, müsste man noch einmal schauen.
Gruß
Markus
Hallo,
du benötigst einfach administrative Rechte auf dem Remote-PC. Von du von deinem lokalen PC Zugriff auf den Remoterechner benötigst, muss entweder der gerade am lokalen PC angemeldete Benutzer dem Remote Rechner bekannt sein, oder Du musst dich an ihm manuell authentifizieren.
Recht hast du natürlich damit, dass es einfacher ist, die Domänen-Admin Rechte vorauszusetzen... aber ob das immer so gut ist... naja.
Wünsch Dir trotzdem noch viel Erfolg beim Lösen
Gruß
Markus
du benötigst einfach administrative Rechte auf dem Remote-PC. Von du von deinem lokalen PC Zugriff auf den Remoterechner benötigst, muss entweder der gerade am lokalen PC angemeldete Benutzer dem Remote Rechner bekannt sein, oder Du musst dich an ihm manuell authentifizieren.
Recht hast du natürlich damit, dass es einfacher ist, die Domänen-Admin Rechte vorauszusetzen... aber ob das immer so gut ist... naja.
Wünsch Dir trotzdem noch viel Erfolg beim Lösen
Gruß
Markus