使用VBScript获取SIP地址
我正在尝试获取用户的SIP地址,以便使用JavaScript对象检查他们在Office Communicator中的状态。这里有一个脚本,我发现它与我正在寻找的类似使用VBScript获取SIP地址,vbscript,active-directory,sip,ocs,Vbscript,Active Directory,Sip,Ocs,我正在尝试获取用户的SIP地址,以便使用JavaScript对象检查他们在Office Communicator中的状态。这里有一个脚本,我发现它与我正在寻找的类似 Option Explicit DIM objConnection, objCommand Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "Provider=ADsDSOObject;" Set objCommand = Create
Option Explicit
DIM objConnection, objCommand
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
Dim objOU, objUser, strUPN, strSIP, SIPLine
' Bind to the OU object.
Set objOU = GetObject("LDAP://chkenergy.net/DC=chkenergy,DC=net")
' Enumerate all users in the OU.
objOU.Filter = Array("user")
For Each objUser In objOU
' Skip computer objects.
If (objUser.Class = "user") Then
strUPN = objUser.userPrincipalName
strSIP = objUser.get("msRTCSIP-PrimaryUserAddress")
wscript.echo strSIP
End If
Next
基本上,我可以从广告中得到他们的用户名,我想把它传进来,然后把他们的SIP地址(strSIP)拿回来。有没有办法修复此代码以专门完成该任务?您发布的vbscript的问题如下:
- Active Directory上的用户对象包含许多属性李>
- 特别是,samAccountName是Windows 2000之前版本的名称李>
- userPrincipalName的格式为
user@domain.name
- 根路径,我们开始搜索的地方
- LDAP筛选器
- 返回属性
- 搜索范围
<LDAP://chkenergy.net/DC=chkenergy,DC=net>;(&(objectClass=user)(samAccountName=yourusername));msRTCSIP-PrimaryUserAddress;subtree
你能更详细地介绍一下你想要达到的目标吗?这段代码会在用户的机器上运行,并获得他们自己的状态吗?还是会有其他用户出现?通信器是否安装在运行此代码的机器上?JavaScriptcom在哪里加入了它?只是想了解是否有比使用ADJavaScript更好的方法,因为它是这个应用程序的主要逻辑源。应用程序向用户返回一个随叫随到的轮换时间表,我想将这些用户的通信器状态集成到该时间表中。我使用NameCtrl.GetStatus JS方法来获取它们的状态。我需要将他们的SIP地址传递到该方法中,因此我确信这是正确的地址。如果你还需要什么,请告诉我好的-有道理@Harvey下面的答案应该是完美的,那么除了.Fields(“samAccountName”)应该是.Fields(“msRTCSIP PrimaryUserAddress”)之外,其他都是正确的,因为这是我试图提取的变量。谢谢你。
userName = "harvey"
ldapStr = "<LDAP://chkenergy.net/DC=chkenergy,DC=net>;(&(objectClass=user)(samAccountName=" & userName & "));msRTCSIP-PrimaryUserAddress;subtree"
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "ADSDSOObject"
conn.Open "ADs Provider"
Set rs = conn.Execute(ldapStr)
While Not rs.EOF
wscript.echo rs.Fields("msRTCSIP-PrimaryUserAddress")
rs.MoveNext
Wend