Erhalten Sie die SIP-Adresse mithilfe von VBScript
Ich versuche ein Benutzer die SIP-Adresse, so kann ich mit einem JavaScript-Objekt, um Ihre Anwesenheit zu prüfen, die in Office Communicator. Hier ist ein script, das ich gefunden, die ist ähnlich, was ich Suche zu tun.
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
Grundsätzlich kann ich den Benutzernamen aus dem AD, und das würde ich gerne weitergeben, dass in und erhalten Sie Ihre SIP-Adresse ein (strSIP) zurück. Gibt es eine Möglichkeit dieses Problem zu beheben code zu tun, die Aufgabe konkret?
- Können Sie ein bisschen mehr Details über das, was Sie zu erreichen versuchen? Wird dieser code läuft auf einem Benutzer-Maschine, und erhalten Sie Ihre eigene Präsenz? oder wird es einem anderen Benutzer Auftritt? Wird communicator installiert werden, auf der Maschine, auf der dieser code ausgeführt? Wo kommt der javascript-com in es? Versuche nur zu verstehen, wenn es möglicherweise ein besserer Ansatz, als in AD
- JavaScript kommt es, weil es die wichtigsten Logik Quelle dieser Anwendung. Die Anwendung gibt eine on-call rotation-Programm, um die Benutzer, und ich möchte zu integrieren jeder dieser Benutzer communicator Präsenz in den Zeitplan. Ich benutze die NameCtrl.GetStatus JS-Methode, um Ihre Präsenz. Ich brauche Ihre SIP-Adresse zu übergeben, in der Methode, so bin ich versichert, es ist die richtige Adresse. Lassen Sie mich wissen, wenn Sie etwas anderes benötigen
- AH, ok - macht Sinn. @Harvey ' s Antwort unten sollte perfekt sein, dann
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Problemen Ihres vbscript geschrieben sind
Bevor ich Ihre Frage zu beantworten, sind hier einige grundlegende hintergrund-Kenntnisse über Active Directory.
[email protected]
Können Sie actully ausführen einer Abfrage mithilfe eines ADO-connection-Objekt. Da sind Sie gebunden an ein Active Directory auszuführen, können Sie eine LDAP-Abfrage. Die LDAP-query-string enthält vier Teile.
Den LDAP-query-Zeichenfolge, die Sie verwenden sollten, sollte so etwas wie
<LDAP://chkenergy.net/DC=chkenergy,DC=net>
.(&(objectClass=user)(samAccountName=yourusername))
. Natürlich, Sie brauchen, um zu ersetzenyourusername
auf etwas anderes in deinem code. Ich gehe davon aus, dass Sie übergeben können, eine "samAccountName". Wenn das nicht der Fall, müssen Sie zum ändern der filter selbst.msRTCSIP-PrimaryUserAddress
. Ich denke, das ist, was Sie brauchen. Richtig?subtree
Hier ist ein vollständiges Beispiel, dass ich denke, Sie sollten Ihren job tun