Jump to content

Automatisierte Proxyeinstellungen --> Skript


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Hallo,

 

wir wollen für unsere Vertriebsmitarbeiter die Zugänge zum Internet erleichtern. Jetzt ist es so, dass wir per GPO einen Proxyservereintrag setzen. Befinden sich nun unsere Vertriebsmitarbeiter z. B. in einem Hotel mit einem Hotspot, bei dem eine Anmeldung über eine Internetseite notwendig ist, funktioniert das nicht. Außerdem benötigen wir für unsere Produktmanager die Zugriffe auf verschiedenste Webkonfigurationsseiten unserer Produkte.

 

Nun wollen wir für diese User unser Proxyverhalten automatisieren. Dazu habe ich mir folgendes Skript heruntergeladen:

 

Set objShell = CreateObject("WScript.Shell")
strProxy = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
intProxyEnable = objShell.RegRead(strProxy)
If intProxyEnable = 1 Then
intProxyEnable = 0
strMeldung = "Proxy ist deaktiviert!"
Else
intProxyEnable = 1
strMeldung = "Proxy ist aktiviert!"
End If

objShell.RegWrite strProxy, intProxyEnable, "REG_DWORD"
MsgBox 	strMeldung

 

Dies funktioniert schon ganz gut. Die User müssten allerdings von selbst dieses Skript ausführen. Somit habe ich mir eine weiteres Skript heruntergeladen, das automatisch erkennt ob der Proxy zur Verfügung steht. Steht der Proxy nicht zur Verfügung, wird der Proxyeintrag ausgeschaltet. Hier das Skript:

 

' 20 Sek. warten, damit das Profil vollständig geladen ist
WScript.Sleep 20000

Set objShell = CreateObject("WScript.Shell")
' Proxy-Einstellungen in der Registry des Users
strProxy = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\"
' Proxy eingeschaltet?
intProxyEnable = objShell.RegRead(strProxy & "ProxyEnable")
' Name des Proxy?
strProxyName = objShell.RegRead(strProxy & "ProxyServer")
strProxyName = Left(strProxyName, InStr(strProxyName, ":")-1)
' Proxy erreichbar?
flgProxyOnline = IsOnline(strProxyName)

If flgProxyOnline = False And intProxyEnable = 1 Then
' Proxy ist nicht erreichbar, aber eingetragen
intProxyEnable = 0
strMeldung = "Proxy " & strProxyName & " wurde deaktiviert!"
ElseIf flgProxyOnline = True And intProxyEnable = 0 Then
' Proxy ist erreichbar, aber nicht eingetragen
intProxyEnable = 1
strMeldung = "Proxy " & strProxyName & " wurde aktiviert!"
Else
' nichts zu tun
WScript.Quit
End If

objShell.RegWrite strProxy & "ProxyEnable", intProxyEnable, "REG_DWORD"
objShell.Popup strMeldung, 5

Function IsOnline(PCName)
   ' Läuft nur unter Windows XP, Windows Server 2003 und Nachfolgern
   IsOnline=False
   Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
       ExecQuery("select ReplySize from Win32_PingStatus where address= '" _
       & PCName & "'")

   For Each objStatus In objPing
       If Not IsNull (objStatus.ReplySize) Then
          IsOnline = True
       Else
          IsOnline=False
       End If
   Next
End Function

 

Hier muss ich noch unseren Proxyserver eintragen und an dem scheitere ich jetzt.

Wo muss ich den Proxyserver eintragen? Mit IP-Adresse oder FQDN oder NetBIOS-Name? Anscheinend müssen die User auch nicht lokale Admins sein, da das erste Skript und somit der Eintrag in der Registry ja funktioniert.

 

Wer kann mir hier weiterhelfen? Wie habt Ihr das Problem gelöst?

 

Gruss

Mull

Link to comment
Steht der Proxy nicht zur Verfügung, wird der Proxyeintrag ausgeschaltet

Dann ist der Eintrag ja nicht mehr vorhanden.

 

Hier muss ich noch unseren Proxyserver eintragen und an dem scheitere ich jetzt.

Wieso willst Du ihn dann wieder eintragen, wenn er vorhin entfernt worden ist?

 

Eine weitere Möglichkeit wäre eine IPSEC-Einwahlverbindung für die Vertriebsmitarbeiter. Wenn ihr 10 habt, dann wären dies ja nicht sonderlich schwer zu realisieren, zumal der Zugang dann ja durch einen Tunnel verläuft.

Link to comment

Hi,

 

ich habe vorhin das Skript getestet und es funktioniert! Der Proxyservername wird aus der Registry ausgelesen. Sobald ich jetzt mein Testnotebook aus unserem Firmennetzwerk entferne, wird der Proxyserver deaktiviert und ein "normales" Surfen ist möglich.

 

Ein Problem stellt dann die VPN-Einwahl dar. Folgender Ablauf ist bei uns gegeben:

 

1. Mitarbeiter kommt nach Hause und schließt sein Notebook an einen normalen DSL-Anschluss.

2. Das Skript erkennt, dass der Proxyserver nicht zur Verfügung steht und deaktiviert diesen.

3. Nun öffnet der Mitarbeiter den Cisco VPN Client und stellt einen Tunnel in unser Netzwerk her.

4. Nun sollte der Proxyserver wieder gesetzt werden.

 

Ich denke, dies kann ich realisieren, in dem ich dem Cisco VPN Client sage, er solle bei einer erfolgreichen Verbindung das Skript nochmal ausführen. Dann würde es gehen. Oder wir verwenden die Option "VPN-Tunnel aufbauen vor dem Windows Logon". Dies wird früher oder später sowieso kommen, da dies eigentlich unsere Firmen-Policie darstellt.

 

Gruss

Mull

Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...