Jaa


Automatizzare l’abilitazione degli utenti all’uso dei servizi di OCS

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 oShell
Const ADS_PROPERTY_APPEND = 3
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
‘verifica l’esistenza del file. Se il file esiste inizia a leggerlo
if objFSO.FileExists("userToBeEnabled.csv") then

‘ lista contiene tutti I DN degli utenti da abilitare
Set lista = objFSO.OpenTextFile("userToBeEnabled.csv", ForReading)
strNextLine = lista.Readline
‘si cicla per tutti I DN degli utenti
Do Until lista.AtEndOfStream

‘si verifica che non ci siano spazi prima i dopo il DN e si fa una query LDAP
strNextLine = trim(lista.Readline)
strNextLine = "LDAP://" + mid(strNextLine,2,len(strNextLine)-2)
‘si crea un oggetto dal risultato della query LDAP
Set objUser = GetObject(strNextLine)
‘setta l’attributo msRTCSIP-PrimaryHomeServer con il DN del pool
objUser.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’utente
objUser.Put "msRTCSIP-UserEnabled", true
‘si va a settare il sip address dell’utente, uguale all’indirizzo email
strMail="sip:"&objUser.mail
objUser.Put "msRTCSIP-PrimaryUserAddress", strMail
‘associazione di una user policy per l’utente
objUser.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 flag
objUser.Put "msRTCSIP-ArchivingEnabled",1
objUser.Put "msRTCSIP-OptionFlags", 256
on error resume next
objUser.SetInfo
wscript.echo err.number
wscript.echo err.description
on 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.