VBS从AD和OU Case语句中检索计算机OU以执行操作

时间:2014-03-28 15:49:20

标签: vbscript location ou

我有来自ScriptIT人员的这段代码。

Set objSysInfo = CreateObject("ADSystemInfo")
strComputer = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputer)
arrOUs = Split(objComputer.Parent, ",")
arrMainOU = Split(arrOUs(0), "=")
wscript.echo arrMainOU(1)

我遇到的问题是arrMainOU(1)两次回应OU。我尝试设置一个简单的测试,但它失败了。我在这里或谷歌上都没有看到这个问题。

If arrMainOU(1) = "myOU" Then
wcript.echo "true"
End If

我需要将arrMainOU(1)中的1个值与包含OU字符串的数组进行比较。我需要一个case语句,根据它的OU1或OU2等来执行操作。

我在评估arrMainOU(1)时遇到了困难。如果我将值输出到文件,那么它只写一个值。

任何帮助将不胜感激 - 谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用此代码段来了解'SPLIT'功能:

Set objSysInfo = CreateObject("ADSystemInfo")
strComputer = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputer)
arrOUs = Split(objComputer.Parent, ",")
retstring = ""
For ii = LBound( arrOUs) To UBound( arrOUs)
    arrMainOU = Split(arrOUs(ii), "=")
    For jj = LBound( arrMainOU) To UBound( arrMainOU)
        retstring = retstring & "arrOUs(" & CSTR( ii) & ") = " & arrOUs(ii) & vbTab 
        retstring = retstring & "arrMainOU(" & CSTR( jj) & ") = " & arrMainOU(jj) & vbNewLine
    Next
    retstring = retstring & vbNewLine
Next
Wscript.Echo retstring