因为最近调整ISA,测试了些规则和设置,一方面担心后续用户可能出现该问题,找到原因会比较踏实,另一方面里面应用程序太多,重装系统和程序很麻烦;所以被这个问题困扰了两三天,而且就是自己的本子中招了!直接求助goole和百度大神也没有什么好的信息。真是:常在河边走,哪能不湿鞋啊。

   现象很奇怪,32位的IE浏览器不能正常打开网页,但是64位的IE却是正常,其他同事使用64位win7中的IE都很正常。 在ISA日志记录中,比较64位的IE和32位的IE上网日志记录,区别是32位的IE的日志中没有用户名,而64位的IE是有的,所以被ISA的网络访问规则拒绝了,我公司访问外网是需要域帐户验证的,对应到ISA上的规则是“允许内部到外部通过验证的用户浏览web ”。进而发现所有的32位程序去往外部,在ISA日志上都没有提交用户,或者显示anonymous用户。。。当然也无法正常连接外网。

   现在问题可以比较准确的描述了:造成这些现象是由于FWC(Firewall client)客户端程序(TMG client/ISA client)不能正常向ISA或者TMG服务器提交当前登陆用户账户信息,所以无法通过要求身份验证的规则,问题还是出在FWC客户端这块。想详细了解下FWC的原理,以方便排错,但是微软提供的关于FWC的信息很少,只是说是一个Winsock程序,可以将客户端的TCP\UDP协议的通讯代理到ISA\TMG,说白了,就是对于安装了FWC客户端的计算机而言,ISA/TMG就是一个加强版的web代理服务器。好在在TMG客户端的安装目录下有FwcTool.exe这个工具,使我揭开看似健康和无辜的TMG client绿色图标,确定TMG客户端确实有问题。检查FWC是否安装正常的操作是在cmd窗口中运行:

FwcTool.exe PingServer

   如果不正常会提示:

……Winsock providers are not installed properly

   通过上面这个输出结果再去求助google大神,也就有了眉目。修复TMG/ISA 客户端的操作如下:

   在管理员权限下打开CMD窗口,执行该命令后重启电脑即可:

NETSH WINSOCK RESET CATALOG

   该命令是将Winsock重置成初始化状态,参考:http://technet.microsoft.com/zh-cn/library/bb457156(en-us).aspx

其实明白了FWC和Winsock的关系后就很好理解和找到方法。另外,还有其他可以检查Winsock状态的工具,比如Windows Server中的netdiag /test:winsock /v,System Repair Engineer (SREng) 这个也很不错,一位微软大牛做的工具,免费授权使用,赞!下载地址是:http://www.kztechs.com/index1.html。找到后可以很快得进行重置修复或者删除掉捣乱的软件。

   变换新工作环境后相对人少事杂,有心学点管理,不能花费太多时间专注于细节了,专注于细节会忽视很多东西,但是也有这么句话:要像爱护眼睛一样爱护自己的专业, 不是么?技术能力的增长,来源于点点滴滴的问题和挫折。