2011-08-31 44 views
0

VB脚本文件中的以下代码将允许我在计算机上获取代理启用标志。例如,我没有在我的机器上启用代理,所以它返回“0”。VBS - 如何获取机器的DOMAIN代理设置?

但是,这些是Windows域计算机,在大多数情况下,我没有收到任何东西 - 不是0,而是空白。

我假设这是因为我有一个强制执行代理设置(如ON)的域策略。

那么,问题是我该如何阅读?它是不同的注册表键,还是我必须以某种方式读取完全不同的网络设置?

const HKEY_CURRENT_USER = &H80000001 
    Set oReg=GetObject(_ 
    "winmgmts:{impersonationLevel=impersonate}!\\" &_ 
    strComputer & "\root\default:StdRegProv") 
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
strValueName = "ProxyEnable" 
oReg.GetDWORDValue _ 
    HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue 

回答

0

如果键HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings注册表值ProxySettingsPerUser是1,则代理每个用户定义的(即,它可以从HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings键来检索)。

如果ProxySettingsPerUser为0,则为整个计算机定义代理(即,代理设置存储在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings中)。

+0

如果在任何地方(并且没有ProxySettingsPerUser密钥)没有ProxyEnable(或带有代理字的任何内容)会怎么样?在我的所有机器上,它们都没有ProxySettingsPerUser密钥,并且没有任何代理设置位于您提及的HKEY_LOCAL_MACHINE路径。 –

+0

我可能找到了我的答案。我们运行Sophos防病毒软件。它看起来像代理设置存储在本地机器,软件\ sophos \ savservice \ sophosproxy。它不会被sophos服务器压低或设置在sophos软件中,我个人在Internet Explorer连接设置中为其中一些设置了代理设置。所以看起来sophos正在做一些事情并拦截设置。 –