2016-03-08 190 views
0

我有一个脚本来映射基于AD组的打印机。我发现它不适用于某些用户,经过一番挖掘,我意识到它与组名或OU的斜线有关。如何处理AD OU和组名称上的斜杠?

我的问题是,我怎样才能改善我的脚本来处理这个问题而不必改变它整个?

这里是处理用户的身份,并列出组的部分:

on error resume next 

'determines the user who just logged on 
Set objSysInfo = CreateObject("ADSystemInfo") 
Set WSHNetwork = CreateObject("WScript.Network") 
'As soon as we tack on LDAP:// and construct an ADsPath we then bind to the user account in 
'Active Directory and report back the groups the user belongs to; this can be done simply 
'by enumerating the values in the MemberOf attribute. 


strUserPath = "LDAP://" & objSysInfo.UserName 
Set objUser = GetObject(strUserPath) 


For Each objGroup in objUser.Groups 
    strGroupName = objGroup.CN 

任何帮助将不胜感激!

Regards

+0

* ...它与组名或OU上的斜杠相关* ...如何?你有错误吗?它说什么?您发布的代码是导致问题的部分吗?有问题的值是什么样的? –

+0

它应该在两种情况下都失败。我确实收到以下错误:“(null):0x80005000,指的是

+0

'strUserPath'的值是什么样子的。 strUserPath =“LDAP://”&Replace(objSysInfo.UserName,“/”,“\ /”)'? –

回答

1

尝试在用户名中转义斜线。它们可能在LDAP URL中被误解。

strUserPath = "LDAP://" & Replace(objSysInfo.UserName, "/", "\/") 
+0

非常感谢! –