首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在移动到服务器2008 VBScript之后,ADsDSOObject不再工作了

在移动到服务器2008 VBScript之后,ADsDSOObject不再工作了
EN

Server Fault用户
提问于 2012-04-20 09:54:43
回答 2查看 4.2K关注 0票数 0

最近,我们将一些脚本从32位Windows 2008服务器移至新的Windows2008服务器R2 64位计算机。现在我们遇到了一些问题,一些VB脚本。让我们以这个为例:

代码语言:javascript
运行
复制
Set objcon = CreateObject("ADODB.Connection")
Set objrs = CreateObject("ADODB.Recordset")
Set objcom = CreateObject("ADODB.command")

Set objrootdse = GetObject("LDAP://RootDse")
strDN = "GC://" & objrootdse.Get("rootDomainNamingContext")

objcon.Provider = "ADsDSOObject"


objcon.Open "ADS Provider"
Set objcom.ActiveConnection = objcon
objcom.Properties("Page Size") = 10000
objcom.CommandText = "<" & strDN & ">;" & strFilter & ";adspath;subtree"

Set objrs = objcom.Execute

if objrs.eof and objrs.bof then //<-- fails here
...

当我运行此脚本时,它会失败,例外情况是:“搜索筛选器无法识别”,尽管它在32位计算机上运行良好。新服务器只安装了web角色和文件服务角色。当涉及到ADsDSOObject提供程序时,似乎总是会出现一些麻烦。LDAP搜索筛选器是可以的。

编辑:我还尝试运行SysWow64版本的cmd.exe和cscript.exe,结果相同。

编辑2:尝试了更多的东西。结果,该方法是正确的,当它遇到像“(&(name=)(objectClass=computer)”这样的过滤器时会失败,这是无效的,因为名称在LDAP字符串中不能是空的。有趣的是,另一台服务器似乎忽略了这个错误,只是继续前进。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-04-22 16:54:47

我解决了这个问题:由于某种原因,nwe服务器上的Vbscript在遇到无效的LDAP过滤器时退出。它从来没有在旧的服务器上这样做,所以我想在win 2008 r2中处理这些错误的方式会有所改变。

票数 1
EN

Server Fault用户

发布于 2012-04-20 09:58:59

尝试使用位于%windir%\SysWOW64 64目录中的wscript.exe或cscript.exe版本运行脚本

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/381471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档