Spesso abilitare gli utenti all’utilizzo del Microsoft Office Communicator potrebbe diventare una operazione lunga e dispendiosa.
Per questo motivo potrebbe essere molto utile realizzare un semplice scrpt, ad esempio in VBS che permetta di automatizzare tale operazione ed avere centinaia di utenti abilitati in pochi secondi.
Vediamo in dettaglio gli attibuti che devono necessariamente essere compilati in fase di abilitazione:
o msRTCSIP-UserEnabled: valore booleano da settare a TRUE per abilitare l’utente
o msRTCSIP-PrimaryUserAddress : è il SIP address dell’user, per esempio sip:jimc@contosoocs.com
o msRTCSIP-PrimaryHomeServer: distinguished name (DN) di un OCS pool valido
Si potrebbe scegliere di settare anche altri attributi, non indispensabili, come ad esempio:
o msRTCSIP-UserPolicy: policy assegnata all’utente
o msRTCSIP-ArchivingEnabled: valore booleano che se settato a true abilita l’archiviziano di tutte le conversazioni di messaggistica sul server di archiving
o msRTCSIP-OptionFlags: valore intero che identifica le opzioni assegnate all’utente.
Per vedere l’enco completo e dettagliato degli attributi visitare:
http://technet.microsoft.com/en-us/library/bb663647(office.12).aspx
Vediamo un semplice esempio di script VBS utilizzabile per automatizzare l’abilitazione di utenti, andando a settare alcuni degli attributi .
Supponiamo di avere un file “userToBeEnabled.csv” contenente tutti i distinguished name degli utenti che si vogliono abilitare all’utilizzo dei servizi OCS, uno per ogni riga del file.
Quello che farà lo script sarà semplicemente leggere il file, e per ogni DN farà una query LDAP, prende l’oggetto corrispondente all’utente e setterà i parametri necessari.
Dim oShellConst ADS_PROPERTY_APPEND = 3 Const ForReading = 1Set objFSO = CreateObject("Scripting.FileSystemObject")‘verifica l’esistenza del file. Se il file esiste inizia a leggerloif objFSO.FileExists("userToBeEnabled.csv") then
‘ lista contiene tutti I DN degli utenti da abilitareSet lista = objFSO.OpenTextFile("userToBeEnabled.csv", ForReading)strNextLine = lista.Readline‘si cicla per tutti I DN degli utentiDo Until lista.AtEndOfStream
‘si verifica che non ci siano spazi prima i dopo il DN e si fa una query LDAPstrNextLine = trim(lista.Readline)strNextLine = "LDAP://" + mid(strNextLine,2,len(strNextLine)-2)‘si crea un oggetto dal risultato della query LDAPSet objUser = GetObject(strNextLine) ‘setta l’attributo msRTCSIP-PrimaryHomeServer con il DN del poolobjUser.Put "msRTCSIP-PrimaryHomeServer", "CN=LC Services,CN=Microsoft,CN=pool00,CN=Pools,CN=RTC Service,CN=Microsoft,CN=System,DC=testmailroot,DC=intranet,DC=contoso,DC=eu"‘si abilita l’utenteobjUser.Put "msRTCSIP-UserEnabled", true‘si va a settare il sip address dell’utente, uguale all’indirizzo emailstrMail="sip:"&objUser.mail objUser.Put "msRTCSIP-PrimaryUserAddress", strMail‘associazione di una user policy per l’utenteobjUser.Put "msRTCSIP-UserPolicy", "B:8:01000000:CN={CC1BE0DB-1346-4BE4-90A4-7A3A62EFF2BB}, CN=Policies,CN=RTCservice,CN=Microsoft,CN=System,DC=testmailroot,DC=intranet,DC=contoso,DC=eu"‘abilitazione dell’archiving e di varie opzioni definite dall’option flagobjUser.Put "msRTCSIP-ArchivingEnabled",1objUser.Put "msRTCSIP-OptionFlags", 256on error resume nextobjUser.SetInfowscript.echo err.numberwscript.echo err.descriptionon error goto 0
loop
end if
Naturalmente questo è solo uno script di esempio, deve essere modificato secondo le proprie esigenze e naturalmente è fondamentale che venga testato, magari su utenti test.