博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何通过组策略配置proxy.pac
阅读量:5825 次
发布时间:2019-06-18

本文共 2242 字,大约阅读时间需要 7 分钟。

前些天,同事给我抱怨,公司的GPO强制更改了笔记本的IE代理服务器,在办公室还好,一回家就上不了网了,必须手动更改代理设置,真是麻烦。我想了想,proxy.pac自动代理文件应该可以解决这个问题,于是想到就做。

Proxy.pac文件的本质是javascript的一个函数,通过设定各种条件(域名,IP等等),从而让浏览器加载的时候自动去寻找对应的代理服务器。比如说

function FindProxyForURL(url, host) {

               if(isInNet(myIpAddress(), "10.71.80.0", "255.255.255.0")){

                               return"PROXY 112.186.227.85:8080";

               }

               return"DIRECT";

}

当浏览器加载这个proxy.pac文件之后,就会自动比较自己的IP地址,如果属于10.71.80.0/24 这个范围,那么他就使用代理服务器112.186.227.85:8080,否则直接连接网络。

IE为例,可以在Option->Connection->LAN setting 中进行设置。注意IE的格式是file://c:/proxy.pac, 而在某些浏览器里面需要改成file:///c:/proxy.pac

Proxy.pac文件写好以后,就需要配置在一个共享的服务器上以供下载。我把他放在文件服务器fileserver的一个共享文件夹中,我的思路是域用户登录客户机时,自动下载proxy.pac到本地文件夹中,同时通过配置GPO中的IE选项让IE绑定该文件。

我找了一个现成的vb脚本下载,稍加改动路径以便满足自己的需要。同时因为我要把文件拷贝到C:\WINDOWS\system32\drivers\etc\默认普通用户是没有权限访问的,我还必须更改这个文件夹的权限。

Copy.vbs

Option Explicit

Dim WshShell

Dim fso

Dim USERPROFILE

Dim srcPath

Dim tgtPath

Dim computername

On Error Resume Next

Set WshShell =WScript.CreateObject("Wscript.Shell")

Set fso =WScript.CreateObject("Scripting.FilesystemObject")

USERPROFILE =WshShell.ExpandEnvironmentStrings("%USERPROFILE%")

'Set wshShell = WScript.CreateObject("WScript.Shell" )

'computername= wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%" )

'WScript.Echo "Computer Name: " & computername

srcPath = "\\fileserver\it\proxy\proxy.pac"

tgtPath =  "C:\WINDOWS\system32\drivers\etc\proxy.pac"

If Not fso.FileExists(tgtPath) Then

fso.CopyFile srcPath, tgtPath, True

'wscript.echo "Copy to "+tgtPath

ElseIf fso.FileExists(srcPath) Then

ReplaceIfNewer srcPath, tgtPath

End If

Sub ReplaceIfNewer(strSourceFile, strTargetFile)

Const OVERWRITE_EXISTING = True

Dim objFso

Dim objTargetFile

Dim dtmTargetDate

Dim objSourceFile

Dim dtmSourceDate

Set objFso =WScript.CreateObject("Scripting.FileSystemObject")

Set objTargetFile = objFso.GetFile(strTargetFile)

dtmTargetDate = objTargetFile.DateLastModified

Set objSourceFile = objFso.GetFile(strSourceFile)

dtmSourceDate = objSourceFile.DateLastModified

If (dtmTargetDate < dtmSourceDate) Then

objFso.CopyFile objSourceFile.Path,objTargetFile.Path,OVERWRITE_EXISTING

End If

Set objFso = Nothing

End Sub

最后是GPO配置结果

一个是针对文件夹权限的,需要在用户电脑的OU配置

一个是用户的登录脚本,比较更新时间下载最新版本的proxy.pac,同时绑定IE

经测试,在我的TMG代理服务器上能够成功检测到连接的客户session客户机访问My IP显示的也是代理服务器的公网地址。Done

转载地址:http://nnidx.baihongyu.com/

你可能感兴趣的文章
Ninject 2.x细说---2.绑定和作用域
查看>>
30个非常时尚的网页联系表单设计优秀示例
查看>>
使用membership(System.Web.Security)来进行角色与权限管理
查看>>
opticom 语音质量验证白皮书
查看>>
3D实时渲染中的BSP树和多边形剔除
查看>>
Frank Klemm's Dither and Noise Shaping Page: Dither and Noise Shaping In MPC/MP+
查看>>
网络抓包的部署和工具Wireshark【图书节选】
查看>>
Redis在Windows+linux平台下的安装配置
查看>>
Maven入门实战笔记-11节[6]
查看>>
Local declaration of 'content' hides instance variable
查看>>
ASP.NET中 HTML标签总结及使用
查看>>
Linux下日志系统的设计
查看>>
爬虫IP被禁的简单解决方法——切换UserAgent
查看>>
php生成word,并下载
查看>>
紫书 习题8-11 UVa 1615 (区间选点问题)
查看>>
asp.net mvc学习(Vs技巧与Httpcontext)
查看>>
float数据在内存中是怎么存储的
查看>>
开发经验和习惯
查看>>
dedecms 修改标题长度可以修改数据库
查看>>
Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
查看>>