VBScript在目录中查找用户;返回结果(找到或未找到)

时间:2015-02-04 21:35:35

标签: javascript vbscript wsh

我想首先道歉不包括任何代码。 VBScript完全脱离了我的知识领域,我被要求在工作中使用它来制作一个小程序。

目标:我被要求搜索部分活动目录(我被告知它是我们活动目录中的OU),并将尝试使用OU登录计算机的用户进行比较。如果那个人在指定的OU中存在,我需要做点什么。如果这个人不存在,我需要做别的事情。

具体细节:我在医院工作。这样做的目的是让护士不要使用为地板上的医生指定的笔记本电脑。当一名护士进入所述计算机时,如果登记的人员存在于“医生”中。 OU(这是我的OU),然后继续登录,否则将人员记录下来(这将是Imprivata中的F4键)。话虽如此,我们使用一个名为Imprivata的程序,在用户刷徽章时记录用户。 Imprivata还可以执行按键操作,例如键入用户的密码,单击按钮等.Imprivata程序允许在VBScript,WSH中在后台编写代码,我相信JavaScript,然后在条件存在时执行(登录计算机的人。不幸的是,我对这些语言中的任何一种都不了解。

我一直在网上搜索并尝试一周不同的事情而没有运气。事实上,我甚至接近任何工作,所以任何帮助都会受到高度赞赏,我再次为缺乏代码而道歉。

2 个答案:

答案 0 :(得分:0)

最简单的方法是获取当前用户OU,可以使用

完成
Set objSysInfo = CreateObject("ADSystemInfo")
strUserName = objSysInfo.UserName

现在您可以检查您的医生OU是否属于其中。当然,这与检查该用户是否在医生OU中完全相同,因为可能存在两个OU中存在相同用户名的情况。但是,如果两个OU中的相同用户发生了某种情况,则无论哪种方式都存在问题。

获得用户OU后,只需进行简单的字符串比较。我总是使用一个小辅助函数

Function contains(sourceStr, checkStr)  
    contains=InStr(1, sourceStr, checkStr, vbTextCompare) > 0
End Function

这只是一个不区分大小写的检查字符串是否是另一个字符串的子字符串。所以

contains(strUserName, "OU=Finance,OU=North America,OU=Pacific Coast,dc=fabrikam,dc=com")

使用您的OU的DN可能已经足够了。

如果你是vbscript的新手,那么一个好的开始将是旧的"嘿脚本专家"所有内容都在很多细节上解释的博客。 This one for example是关于检查用户的OU。

答案 1 :(得分:0)

Windows有此设置。

  

允许本地登录

     

此登录权限确定哪些用户可以以交互方式登录此计算机。通过在连接的键盘上按CTRL + ALT + DEL序列启动的登录需要用户正确登录。此外,某些可以登录用户的服务或管理应用程序可能需要此登录权限。如果为用户或组定义此策略,则还必须为Administrators组提供此权限。

     

工作站和服务器上的默认值:   管理员   备份操作员   用户。

     

域控制器上的默认值:   账户经营者   管理员   备份操作员   打印操作员   服务器运营商。